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

Socket的UDP方式接收完数据后如何获得 对方发来的IP地址和端口,在回发
我   用   UDP接收   对方发来的数据,     如果是TCP方式就得到对方的   client对象,然后   回发   数据回去

但现在是UDP   可能没有连接,所以也得不到client对象,那得到对方的   IP,和端口号怎么获得,怎么回发回去。
接收函数在   ReadCallback里面,在   ReadCallback里,如何获得   对方的IP,端口号在回发给   可户端!代码怎么写应该?

代码如下!·!!!!!!!!!!!!!!!!!!!!!


    ///   <summary>
                ///   启动服务器程序,开始监听客户端请求
                ///   </summary>
                public   virtual   void   Start()
                {
                        if   (_isRun)
                        {
                                throw   (new   ApplicationException( "TcpSvr已经在运行. "));
                        }

                        //缓冲大小
                        _recvDataBuffer   =   new   byte[DefaultBufferSize];
                        //初始化socket
                        _svrSock   =   new   Socket(AddressFamily.InterNetwork,
                                SocketType.Dgram,   ProtocolType.Udp);
                        //绑定端口  
                        IPHostEntry   ipHostInfo   =   Dns.Resolve(Dns.GetHostName());
                        IPAddress   ipAddress   =   ipHostInfo.AddressList[0];
                        IPEndPoint   iep   =   new   IPEndPoint(ipAddress,   _port);
                        _svrSock.Bind(iep);

                        tempRemoteEP   =   (EndPoint)iep;
                     

                        _svrSock.BeginReceiveFrom(_recvDataBuffer,   0,   _recvDataBuffer.Length,   0,   ref   tempRemoteEP,   new   AsyncCallback(ReadCallback),   null);

                        _isRun   =   true;

                }
                //接收函数委托(异步回调,本身带线程,不需要使用线程)
                public   void   ReadCallback(IAsyncResult   ar)