zl程序教程

您现在的位置是:首页 >  后端

当前栏目

c#socket编程udp客户端实现代码分享

c#客户端编程代码 实现 分享 socket UDP
2023-06-13 09:15:13 时间
复制代码代码如下:

Console.WriteLine("ThisisaClient,hostnameis{0}",Dns.GetHostName());
//设置服务端终结点
IPEndPointipe=newIPEndPoint(IPAddress.Parse("127.0.0.1"),8001);
//创建与服务端连接的套接字,指定网络类型,数据连接类型和网络协议
SocketConnSocket=newSocket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
stringwelcome="ClientMessage:Hello!!!";
byte[]data=newbyte[1024];
data=Encoding.ASCII.GetBytes(welcome);
//给服务端发送测试消息
ConnSocket.SendTo(data,data.Length,SocketFlags.None,ipe);
IPEndPointserver=newIPEndPoint(IPAddress.Any,0);
//服务端终结点
EndPointRemote=(EndPoint)server;
data=newbyte[1024];
//对于不存在的IP地址,加入此行代码后,可以在指定时间内解除阻塞模式限制
//server.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReceiveTimeout,100);
intrecv=ConnSocket.ReceiveFrom(data,refRemote);
//打印从服务端发回的信息
Console.WriteLine("Messagereceivedfrom{0}:",Remote.ToString());
Console.WriteLine(Encoding.ASCII.GetString(data,0,recv));
while(true)//可以实时给服务端发送消息
{
   stringinput=Console.ReadLine();
   if(input=="exit")//中断连接
   {
       ConnSocket.SendTo(Encoding.ASCII.GetBytes(input),Remote);
       data=newbyte[1024];
       recv=ConnSocket.ReceiveFrom(data,refRemote);
       Console.WriteLine(Encoding.ASCII.GetString(data,0,recv));
       break;
   }
   else
   {
       ConnSocket.SendTo(Encoding.ASCII.GetBytes("ClientMessage:"+input),Remote);
       data=newbyte[1024];
       recv=ConnSocket.ReceiveFrom(data,refRemote);
       Console.WriteLine(Encoding.ASCII.GetString(data,0,recv));
   }
}
Console.WriteLine("StoppingClient.");
ConnSocket.Close();