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();
相关文章
- c#数组赋初值_C#数组初始化
- C#MQTTNET客户端使用说明
- C#的封装_封装元器件
- C# WinForm实现自动更新程序之客户端的示例代码
- C#多线程调试
- dotnet6 C# 一个国内还能用的 NTP 时间校准客户端的实现
- 利用C#远程存取Access数据库
- C#DataSet的内容写成XML时如何格式化字段数据
- 发布一个基于TokyoTyrant的C#客户端开源项目
- 验证本机的excel版本的C#代码
- c#如何将RadioButton与DataTable数据进行绑定
- C#WinForm程序完全退出的问题解决
- 基于c#接口的实例详解
- c#注册客户端事件示例
- c#批量上传图片到服务器示例分享
- C#常用的字符串扩展方法汇总
- C#设计模式之观察者模式实例讲解
- asp.net中C#实现手动回收内存的方法
- C#判断上传文件是否是图片以防止木马上传的方法
- C#实现的Socket服务器端、客户端代码分享
- asp.net(C#)禁止缓存文件不让文件缓存到客户端