您的位置:首页 > 编程语言 > C#

C#通信之Socket通信的简单例子

2015-02-13 15:37 239 查看
socket通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过”套接字”向网络发出请求或者应答网络请求。

这里构建一个简单的例子,客户端发消息,服务端接收,然后回执一条消息。大致能够了解如何使用Socket进行通信。

服务端监听,接收信息:

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

public partial class ClientWindow : Window
{
Socket c;
public ClientWindow()
{
InitializeComponent();
InitClient();
}

private void InitClient()
{
int port = 2000;
string host = "127.0.0.1";
IPAddress ip = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ip, port);//把ip和端口转化为IPEndPoint实例
c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket

ShowText("连接到Socket服务端...");

c.Connect(ipe);//连接到服务器
}

private void button1_Click(object sender, RoutedEventArgs e)
{
try
{
ShowText("发送消息到服务端...");
string sendStr = textBox2.Text;
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
c.Send(bs, bs.Length, 0);

string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = c.Receive(recvBytes, recvBytes.Length, 0);//从服务器端接受返回信息
recvStr += Encoding.UTF8.GetString(recvBytes, 0, bytes);

ShowText("服务器返回信息:" + recvStr);
}
catch (ArgumentNullException ex1)
{
Console.WriteLine("ArgumentNullException:{0}", ex1);
}
catch (SocketException ex2)
{
Console.WriteLine("SocketException:{0}", ex2);
}
}

private void ShowText(string text)
{
txtSockInfo.AppendText(text + "\n");
}
}


建立连接,发送消息
这是一个WPF的程序,WPF对多线程访问控件和WinForm的处理方式不太一样。

转自波斯马,原文地址《C#通信之Socket通信的简单例子
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: