客户端:
string str = "Hello ";
string str1 = "World";Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
IPEndPoint localPoint1 = new IPEndPoint(IPAddress.Parse("10.46.255.100"),60000);
EndPoint tempPoint1 = (EndPoint)localPoint1;socket .SendTo(System.Text.Encoding.Default.GetBytes(str),tempPoint1);
//Thread.Sleep(1000);
socket .SendTo(System.Text.Encoding.Default.GetBytes(str1),tempPoint1);服务器端:
while(true)
{
Length = socket.ReceiveFrom(recvBuffer,ref tempPoint); Thread thread = new Thread(new ThreadStart(DistributeMsg));
thread.Start();
}
private void DistributeMsg()
{
byte[] buffer = new byte[Length];
Array.Copy(recvBuffer,0,buffer,0,Length);Console.WriteLine(System.Text.Encoding.Default.GetString(buffer));
}以上客户端和服务器都是本机。输出结果:
World
World如果加上Sleep(1000),输出正常,为什么?
string str = "Hello ";
string str1 = "World";Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
IPEndPoint localPoint1 = new IPEndPoint(IPAddress.Parse("10.46.255.100"),60000);
EndPoint tempPoint1 = (EndPoint)localPoint1;socket .SendTo(System.Text.Encoding.Default.GetBytes(str),tempPoint1);
//Thread.Sleep(1000);
socket .SendTo(System.Text.Encoding.Default.GetBytes(str1),tempPoint1);服务器端:
while(true)
{
Length = socket.ReceiveFrom(recvBuffer,ref tempPoint); Thread thread = new Thread(new ThreadStart(DistributeMsg));
thread.Start();
}
private void DistributeMsg()
{
byte[] buffer = new byte[Length];
Array.Copy(recvBuffer,0,buffer,0,Length);Console.WriteLine(System.Text.Encoding.Default.GetString(buffer));
}以上客户端和服务器都是本机。输出结果:
World
World如果加上Sleep(1000),输出正常,为什么?
解决方案 »
- 发送exchange邮箱的邮件
- datagridview某一单元格的背景颜色如何设置
- resharper 总是出现这个对话框,我想用【从元数据】这种功能,怎么做
- 引用编译好的DLL为什么不能改名字?
- 无法执行function没能解决再发新帖,望运行后说话
- winform中,怎么用datagrid绑定指定的列啊
- 一使用XmlSerializer类就出错???请高手指教啊
- C#采用OleDb导出Excel文件,如何设置单元格格式?
- DataGridView的源有个字段是外键,怎么显示它的主键表里的相关信息?
- 关于C#
- +++++++++++++++ 如何关闭一个Session??? +++++++++++
- 急求如何升起快捷栏上升起小旗标控件!!~~~
如果加上Thread.Sleep(1000);那么直接使用send就没有问题,原因是客户端发送完第一条数据后,间隔1s再次发送,这时服务器已经处理完上一个Socket消息,Socket端口空闲,他会处理再次发送的消息,除非人为,否则服务器不会为这些Socket消息自动排队。