我写了一对socket程序,用的Tcp模式, 在内网,客户端和服务端连接正常,但是我想客户端在外网(internet)上访问服务端,怎么办呢?路由器上要怎么设置?服务端的程序要不要修改? 在内网,服务端我侦听IP为0,现在要被Internet上的客户端访问,侦听IP填什么呢?我用0、本机IP、本网对外的IP都试验过,不行。

解决方案 »

  1.   

    假设你监听5000端口。
    那么1:打开服务器上防火墙的5000端口的TCP。
    2:路由做隐射,5000端口转向你服务器的IP
    3:确保你的路由是直接连到internet的。
      

  2.   

    关于socket通信的一个例子
    http://blog.csdn.net/zunshanke2004/archive/2007/01/26/1494318.aspx
      

  3.   

    下面问一个Socket发送与接收字节数的问题:
    假定发送方一次发送一个3K的字节数组,那么接受方 S.Receive接收时,如何能保证一次刚好接受3K的数据?会不会发生接受了一部分的情况?我怎样知道Socket的接受缓冲区已经受到了多少字节的数据?