socket在局域网内的通信十分简单,bind端口后,便可以利用socket的send和receive方法进行数据传送和接受。但是对于2台挂在internet上的机子(不在一个网内),如果想要利用.Net Framework提供的socket类实现数据通信,应该如何实现??和局域网通信有什么区别??
项目上急需,现在很茫然,请教帮助!先大大感谢各位好心大侠!

解决方案 »

  1.   

    有什么不同,一样的,Bind好后,就发,对方一样可以收到
      

  2.   

    是吗?请问你做过类似的实验吗?如果有,请email我的程序。我看看。因为socket的send方法里面有一个参数,好像是socketflag枚举,里面第0项就是dotroute,意思就是不经过路由器。假设在internet上,这个消息肯定要经过很多路由器。因此我觉得应该行不通。而且还要经过那么多防火墙,自己设定的端口不一定是被防火墙开放的。但是为什么qq可以做到这一点??
      

  3.   

    我的socket程序在局域网下已经通了,但是在广域网下不行,所以我想问在广域网环境下如何使用socket
      

  4.   

    很显然内网和公网不一样的
    如果通信的双方都是单独的公网IP,那就和你在同个局限网模式一样的
    如果双方在不同的内网中,那你想想吧
    应该需要 P2P了吧
      

  5.   

    我的做法:
    1.登陆 我采用的是TCP连接(一开始我也是UDP登陆的,后来经常丢包,有的客户端登不上去)
    2.聊天的时候,判断对方和自己是否存在同个LAN,
      如果是的话,那就用局限网的SOCKET模式聊天
      如果不是的话,那就先UDP穿透
    注意:服务器端肯定是公网IP,客户端就无所谓了