Socket连接上后就一直保持连接的哇 m_pClientSocket.RemoteEndPoint.ToString())取得主机和端口号等信息
ParseIP_from_EndPoint(m_pClientSocket.RemoteEndPoint.ToString())
转换这IP
public static string ParseIP_from_EndPoint(string endpoint)
{
string retVal = endpoint; int index = endpoint.IndexOf(":");
if(index > 1)
{
retVal = endpoint.Substring(0,index);
} return retVal;
}

解决方案 »

  1.   

    A,B的连接是一直保持的,但是如果A给B发消息,服务器和B是不是要重新建立一次连接啊。要不服务器,怎么给B发啊,虽然B和服务器仍然有SOCKET连接,但是这个连接怎样才能识别出来啊。
      

  2.   

    个人认为客户端与服务器端建立连接就应该是把类似ip.port等信息发到服务器上的
      

  3.   

    TCP本来就是保持连接的,如果用UDP才需要查找一次IP和端口 
      TCP服务器端不用重新建立连接,建立连接后就可以直接Send了
      

  4.   

    tcp/ip 讲究的是ip 2 ip 所以都是在保持着激活状态直到timeout 或close你只要注意一下将连接的句柄保存起来你可以随便用它进行 send
      

  5.   

    A->S->B,服务器怎么识别出哪一条连接是和B的连接?
      

  6.   

    socket a;
    socket b;你保存这二个句柄成为全局变量,应答时引用:
    Socket a = listener.AcceptSocket();
    第二个应答
    Socket b = listener.AcceptSocket();这就有了A和B 二个socket 句柄了吧(更多的话你可以将它们保存到arraylist),那么你随时可以用a.send

    b.send不需要考虑IP,因为在tcp/ip 协议上,一个socket 必定也只能绑着一个IP
      

  7.   

    如果是同步的话 听到之后创建socket 是自动绑定的