天天看点

C# Socket 编程

1. 使用Socket类创建Server对象

首先需要添加组件的引用:

using System.Net.Sockets;

using System.Net;

服务器和客户端都需要添加

创建服务器端基本步骤如下:

1. 创建Socket

Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

2.绑定IP和端口号,IP地址创建方式有多种

IPAddress ip = new IPAddress(new byte[] { 192, 168, 1, 9 });

// 或者 IPAddress ip = IPAddress.Parse(“192.168.1.9”);

EndPoint point = new IPEndPoint(ip, 8899);

3.开始监听,等待客户端连接

Console.WriteLine(“Listening …”);

tcpServer.Listen(10);//参数是最大连接数

4 .等待客户端的连接。暂停当前线程,直到有一个客户端连接上,之后进行后面的代码

Socket clientSck = tcpServer.Accept();//

//接收数据

byte[] receiveData = new byte[1024];

int len= clientSck.Receive(receiveData);

string recMsg = Encoding.UTF8.GetString(receiveData, 0, len);

Console.WriteLine(recMsg);

//使用返回的Socket跟客户端通信 ,发送数据给连接的客户端

string msg = “Recievd OK”;

byte[] buffer = Encoding.UTF8.GetBytes(msg);

clientSck.Send(buffer) ;

Console.WriteLine(“Send Data OK”);

Console.ReadLine();

2. 使用Socket类创建Client对象

1. 创建Socket

Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

2. 发起建立连接的请求

IPAddress ip = IPAddress.Parse(“192.168.1.9”);

EndPoint point = new IPEndPoint(ip, 7788);

tcpClient.Connect(point);//通过IO,端口 定位到一个服务器

//向服务器发送数据

string sendMsg = “ClientOK”;

tcpClient.Send(Encoding.UTF8.GetBytes(sendMsg));

byte[] data = new byte[1024];

int length = tcpClient.Receive(data);//data数组来接收数据

string msg = Encoding.UTF8.GetString(data, 0, length);

Console.WriteLine(msg);

Console.ReadLine();

测试运行效果如下:

C# Socket 编程