110,567
社区成员
发帖
与我相关
我的任务
分享
public struct udpSource
{
public EndPoint ep;
public Socket workingSock;
public byte[] data;
}
public void socketInit()
{
Socket privateUdpSock = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
IPEndPoint IPE2 = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 60000);
udpSource us2 = new udpSource();
privateUdpSock.Bind(IPE2);
us2.ep = (EndPoint)IPE2;
us2.workingSock = privateUdpSock;
us2.data = new byte[5000];
privateUdpSock.BeginReceiveFrom(us2.data, 0, 4, SocketFlags.None, ref us2.ep, new AsyncCallback(privateCallBack), us2);
}
public void privateCallBack(IAsyncResult ar)
{
udpSource us2 = (udpSource)ar.AsyncState;
Socket sock = us2.workingSock;
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint tempRemoteEP = (EndPoint)sender;
int i = sock.EndReceiveFrom(ar, ref tempRemoteEP);//接收客户端第一个sendto
int m = sock.ReceiveFrom(us2.data, ref tempRemoteEP);//接收客户端第二个sendto
int j = sock.ReceiveFrom(us2.data, ref tempRemoteEP);//接收客户端第三个sendto
int k = sock.ReceiveFrom(us2.data, ref tempRemoteEP);//接收客户端第四个sendto,
sock.BeginReceiveFrom(us2.data, 0, 4, SocketFlags.None, ref tempRemoteEP, new AsyncCallback(privateCallBack), us2);
}