首页 > 其他 > 详细

Socket通信

时间:2019-09-20 01:32:38      阅读:66      评论:0      收藏:0      [点我收藏+]

【TCP】

服务器端:无目标插座升级为有目标插座后,就可以通过有目标的插座收发数据

技术分享图片

客户端:

技术分享图片

实战:此案例有利于理解Socket的工作流程。

缺点:服务器只能接收1个客户端的连接,因为只写了一个Accept;服务器与客户端都只能收、发一次

1、创建控制台程序SocketTcpServer,注意引用using System.Net; using System.Net.Sockets;

//1、创建socket
Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//地址族、套接字类型、协议
//2、绑定本地ip和端口号(一个网卡就有一个ip,电脑可能有多个ip)
IPAddress ipAddress = IPAddress.Parse("192.168.3.3");//ip
EndPoint point=new IPEndPoint(ipAddress,2000);//指定ip和端口号
tcpServer.Bind(point);
//3、开始监听
tcpServer.Listen(10);//最大连接数
Socket clientSocket= tcpServer.Accept();//暂停当前线程,直到有客户端连接之后,才进行之后的代码
Console.WriteLine("一个客户端连接过来了");
//4、收发数据(使用有目标的插座)
//发数据
string message = "你好,我是服务器";
byte[] data= Encoding.UTF8.GetBytes(message);//字符串转成字节数组
clientSocket.Send(data); //发送的是字节数组
Console.WriteLine("向客户端发送了一条数据");
//收数据
byte[] data2 = new byte[1024];
int length=clientSocket.Receive(data2);//接收的是字节数组
string message2 = Encoding.UTF8.GetString(data2, 0, length);//字节转字符串,展示的是字符串
Console.WriteLine("接收到了客户端发送过来的消息:" + message2);

Console.ReadKey();//防止一闪就退出

2、创建控制台程序SocketTcpClient,注意引用using System.Net; using System.Net.Sockets;

//1、创建socket
Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//2、连接远程的IP和端口号
IPAddress ipAddress = IPAddress.Parse("192.168.3.3");//字符串转IP
EndPoint point = new IPEndPoint(ipAddress, 2000);
tcpClient.Connect(point);
//3、收发数据(使用有目标的插座)
//收数据
byte[] data=new byte[1024];
int length= tcpClient.Receive(data);//data数组接收数据,返回已接收的字节数
string message = Encoding.UTF8.GetString(data, 0, length);//转字符串,只转化接收到的数据,剩余的空字节没必要转化
Console.WriteLine("接收数据:"+message);
//发数据
Console.WriteLine("发送数据:");
string message2 = Console.ReadLine();
tcpClient.Send(Encoding.UTF8.GetBytes(message2));//发送的是字节数组

Console.ReadKey();//防止一闪就退出

3、先启动服务器,再启动客户端。

Socket通信

原文:https://www.cnblogs.com/xixixing/p/11553034.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!