1.socket编程-tcp服务器端
创建Socket
将Socket绑定ip跟端口号。IPEndPoint是对ip+端口做了封装
用IPAddress存储ip
使用Socket类中Bind来进行绑定,Listen方法设定最大连接数。
Accept方法暂停当前线程,直到有一个客户端链接过来,再往下进行。
接收到客户端消息,向客户端发送一个消息。socket只能传送Byte类型的数据。
- class Program
- {
- static void Main(string[] args)
- {
- //1.创建socket
- Socket tcpServer = new Socket
- (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- //2.绑定ip跟端口号
- IPAddress ipaddress = new IPAddress(new byte[]{192,168,1,103});
- EndPoint point = new IPEndPoint(ipaddress,7788);//ipendpoint是对ip+端口做了一层封装的类
- tcpServer.Bind(point);//向操作系统申请一个可用的port和ip用来做通信
- //3.监听(等待客户端连接)
- tcpServer.Listen(100);//参数是最大连接数
-
- //4.暂停当前线程,直到有一个客户端链接过来,之后进行下面的代码.使用返回的Socket跟客户端做通信
- Socket clientSocket = tcpServer.Accept();
- string message = "hello 欢迎你";
- byte[] data = Encoding.UTF8.GetBytes(message);
- clientSocket.Send(data);
- }
- }
2.tcp客户端
创建Socket
通过ip和port定位一个要连接的服务器
定义byte 将接收到的数据存储再data中
将接收到的数据转换成string
- class Program
- {
- static void Main(string[] args)
- {
- //1.socket creat
- Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- //2.发起建立连接的请求
- IPAddress ipaddress = IPAddress.Parse("192.168.1.103");
- EndPoint point = new IPEndPoint(ipaddress,7788);
- tcpClient.Connect(point);//通过IP和Port定位一个要连接道德服务器端
-
- //3.接受服务器端发过来的消息
- byte[] data = new byte[1024];
- int length = tcpClient.Receive(data);//length表示接受了多少字节的数据
-
- string message = Encoding.UTF8.GetString(data, 0, length);
- Console.WriteLine(message);
- Console.ReadKey();
- }
- }
3.客户端发送消息给服务器
客户端
- string message2 = Console.ReadLine();
- tcpClient.Send(Encoding.UTF8.GetBytes(message2));
服务器端
- byte[] data2 = new byte[1024];//存储客户端发送过来的数据
- int length = clientSocket.Receive(data2);
- string message2 = Encoding.UTF8.GetString(data2, 0,length);
- Console.WriteLine("接收到客户端发送的消息" + message2);