好久没有写过博客了,最近因项目需求,需要用到套接字来进行通信,简单写了几个例子,记录一下,代码很简单,无非就是接收与发送,以及接收到数据后返回一个自定义信息,也可以定义为发送。
接收端因为需求要监听某个端口,则在一开始判断一下,要使用的端口是否被占用,定义一个处理方法,以下为处理代码:
公共静态bool PortIsUse (int端口) { bool isUse=false; IPGlobalProperties ipProperties=IPGlobalProperties.GetIPGlobalProperties (); IPEndPoint [] ipEndPoints=ipProperties.GetActiveTcpListeners();//找到已用端口 foreach (ipEndPoints IPEndPoint端点) { 如果端点。端口==端口)//判断是否存在 { isUse=true; 打破; } } 返回isUse; }
<强>定义接收端:强>
TcpListener tcpl=new TcpListener(新IPAddress(新byte[]{127, 0, 0, 1}), 1111);//定义一个TcpListener对象监听本地的1111端口 tcpl.Start();//监听开始 而(真) { 套接字s=tcpl.AcceptSocket();//挂起一个套接字对象 字符串远程=s.RemoteEndPoint.ToString();//获取发送端的IP及端口转备为字符串用 Byte[]流=新字节[1024]; s.Receive(流);//接收发送端发过来的数据,写入字节数组//BGW_Handle。ReportProgress(1,“接收来自[+远程+”]信息”); 字符串_data=https://www.yisu.com/zixun/Encoding.UTF8.GetString(流);//将字节数据数组转为字符串 s.Send(流);//将接收到的内容,直接返回接收端 s.Shutdown (SocketShutdown.Both); } tcpl.Stop();//停止监听
<强>,定义发送端代码:强>
IPAddress ip=IPAddress.Parse(127.0.0.1 ");//接收端所在ip IPEndPoint ipEnd=new IPEndPoint (ip, 1111);//接收端所监听的接口 新的套接字(Socket套接字=AddressFamily。互联网络,SocketType。流,ProtocolType.Tcp);//初始化一个套接字对象 试一试 { socket.Connect (ipEnd);//连接指定IP&端口 } 抓住(SocketException e) { Console.WriteLine(“连接失败”); Console.WriteLine (e.ToString ()); 返回; } socket.Send (Encoding.UTF8.GetBytes(" 1234567890 "));//发送数据 而(真)//定义一个循环接收返回数据 { byte [] data=https://www.yisu.com/zixun/new字节[1024]; socket.Receive(数据);//接收返回数据 字符串stringData=Encoding.UTF8.GetString(数据); 如果(! string.IsNullOrWhiteSpace (stringData)) { Console.Write (stringData); 打破; } }29 socket.Shutdown (SocketShutdown.Both); socket.Close();//关闭套接字
从上面代码来看,还是很简单的,这也要归功于微软所做的工作,以上代码若有错误之处可在评论里提出来。
这篇c#插座发送,接收,返回简单应用实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。