sock.RemoteEndPoint 得到的是一个EndPoint
而我需要一个IPEndPoint
有办法可以转换的嘛?

解决方案 »

  1.   

    你是UPD连接?在你调用client.BeginReceive接收数据之前,一定要调用Connect 或 BeginConnect来连接到远程主机吧?这样,还不知道对方的IP,端口??
      

  2.   

    TO storm97(风暴不再) 
    我的是内网用户
    发送出去的消息是要改变IP地址和端口号的
    而用户本身并不知道自己发送消息出去的端口号
    所以只好通过服务器来处理接受到的消息来获得了啊
      

  3.   

    如果你是用Socket.BeginReceive以UDP方式接收数据,在这之前,你一定是先连接的,否则这个SOCKET从哪里接收数据。如果你是用Socket.BeginReceiveFrom方法,可以不必先建立连接,但同样在在参数中指定远程机器的IP和端口。
      

  4.   

    TO haiwangstar(南河三(天狼星上有没有普及C#)) 
      如果你是用Socket.BeginReceive以UDP方式接收数据,在这之前,你一定是先连接的,否则这个SOCKET从哪里接收数据。UDP不是不需要连接的嘛
    Socket.Bind()本地的一个端口,进行监听,网络上所有的计算机都可以往这个端口发送信息啊
      

  5.   

    m_RemoteIPEndPoint=new IPEndPoint(IPAddress.Any, 0);
    m_RemoteEndPoint=(EndPoint)m_RemoteIPEndPoint;

    try
    {
    m_UDPListenerSocket.BeginReceiveFrom(。。m_RemoteEndPoint); }知道你的意思了。。把EndPoint保存为字段,需要时把它强制转换为IPEndPoint。IPEndPoint ip = (IPEndPoint)m_RemoteEndPoint;
      

  6.   

    ms的建议是使用udp协议用BeginReceiveFrom,否则你得先建立连接!