日期:2014-05-18  浏览次数:20758 次

udp获取每一个客户端的IP地址
客户端有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中文手册

------解决方案--------------------
帮你顶