首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Socket的UDP方式接收完数据后怎么获得 对方发来的IP地址和端口,在回发

2012-04-10 
Socket的UDP方式接收完数据后如何获得 对方发来的IP地址和端口,在回发我用UDP接收对方发来的数据,如果是TC

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)
                {

                        //得到可户端发来的   数据,然后怎么把   在把数据回发给可户端


                       
                        byte[]   ai   =   _recvDataBuffer;
                        //byte[]   bi   =   {   1,2,3,4,5,6,76,6,7,254,182,128,7,0};
                      //这里我想把   可户端发来的数据,在发给可户端应该如何做?获得   IP,端口号怎么获得后回发
                        //_svrSock.SendTo(bi,   rmt);

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


[解决办法]
up

热点排行