udp获取每一个客户端的IP地址,该怎么处理
udp获取每一个客户端的IP地址
客户端有2-5个,服务器端要循环接受到客户端发来的数据和IP地址,然后判断IP地址是否为这个几个客户端的IP地址,如果是,则接受数据,不是就不接受。
求高手帮忙!~~
分数不够可再加!~~
------解决方案--------------------
在服务端监听一固定端口,客户端都向服务端指定端口发送消息,当服务端收到消息后,开启一新线程,将收到的Socket交给新开线程处理,在Socket中可得到IPEndPoint对象,该对象包含可客户端的IP和端口,若是指定客户端IP,则可回应消息,若不是,则不回应则完了。
------解决方案--------------------
可参与一下以前我写的一个基于UDP的简单聊天室
http://www.cnblogs.com/kingthy/archive/2008/05/24/1206457.html
------解决方案--------------------
帮顶!~~
------解决方案--------------------
客户端有2-5个,服务器端要循环接受到客户端发来的数据和IP地址,然后判断IP地址是否为这个几个客户端的IP地址,如果是,则接受数据,不是就不接受。
求高手帮忙!~~
分数不够可再加!~~
------解决方案--------------------
在服务端监听一固定端口,客户端都向服务端指定端口发送消息,当服务端收到消息后,开启一新线程,将收到的Socket交给新开线程处理,在Socket中可得到IPEndPoint对象,该对象包含可客户端的IP和端口,若是指定客户端IP,则可回应消息,若不是,则不回应则完了。
------解决方案--------------------
可参与一下以前我写的一个基于UDP的简单聊天室
http://www.cnblogs.com/kingthy/archive/2008/05/24/1206457.html
------解决方案--------------------
帮顶!~~
------解决方案--------------------
- C# code
/// <summary> /// UDP回调 /// </summary> /// <param name="ar"></param> private static void UDPDataReceived(IAsyncResult ar) { try { Socket udpSocket = ar.AsyncState as Socket; int bytesRecved = udpSocket.EndReceiveFrom(ar, ref (EndPoint)ServerEndPoint); //当收到数据后,数据已在dataBuffers,把dataBuffers转换成可识别的结构体,依据命令类型Type udpSocket.RemoteEndPoint//接收到的package是来自哪个ipaddress,把dataBuffers,ipaddress传过去,在第一次刷新时显示
------解决方案--------------------
参考下:
- C# code
public IPAddress IP { get { if ( this.socket != null) return ( (IPEndPoint)this.socket.RemoteEndPoint ).Address; else return IPAddress.None; } }
------解决方案--------------------
顶平民百姓
------解决方案--------------------
WinpCap 的c#版本 SharpCap 功能比Sockets好用一些 建议你看一下 编写可以参考Winpcap中文手册
------解决方案--------------------
帮你顶