各位高手,小弟最近做一个通讯软件,c/s结构的。用异步套接字做的,现在想问下下,服务端启动后,如果客户端接入的是某个局域网中的机器怎么和它建立连接呢?如果这个局域网的IP是202.96.209.133局域网中机器的IP是196.168.0.23服务端怎么和这台192.168.0.23建立Socket连接呢,小弟困惑了好几天,望各位高手能给予解决方案。不胜感谢!!

解决方案 »

  1.   

    如果你服务端在Internet上,那就无法建立与局域网机器的Socket连接。
    服务端要想与其通讯,只能从局域网的机器发起建立Socket连接。
      

  2.   

    Socket应该可以到达吧,楼上的
      

  3.   

    可以连接,局域网中的机器的应该是通过默认网关上的internet,所以它的IP就是202.96.209.133,只不过每台机器所用的端口不同。
      

  4.   

    http://dev.csdn.net/article/49/49396.shtm
      

  5.   

    主要是端口映射,要用到p2p和nat技术,可以去百度搜索一下。
      

  6.   

    对啊,我也想做成像QQ那样的,局域网广域网聊天都没有什么问题,应该不需要什么端口映射吧,上QQ好像没有这么复杂的-_-b
      

  7.   

    简单来说就这么多,全的我QQ群里边有::::1925543
    SERVER:     TcpListener listener=new TcpListener(5000);
                connection=listener.AcceptSocket();
                socketStream=new NetworkStream(connection);
                BinaryWriter writer=new BinaryWriter(socketStream);
                BinaryReader reader=new BinaryReader(socketStream);
                writer.Write("发送的内容");
                接收的字符=reader.ReadString();CLIENT:     TcpListener client=new TcpClient();
                client.Connect("192.168.0.13",5000);  //主机地址和端口
                connection=listener.AcceptSocket();
                socketStream=client.GetStream();
                BinaryWriter writer=new BinaryWriter(socketStream);
                BinaryReader reader=new BinaryReader(socketStream);
                writer.Write("发送的内容");
                接收的字符=reader.ReadString();