1.是通过服务器,建立客户端之间的点对点连接还是怎么样?点对点能不能建立不同公网IP地址的私网用户连接。应该怎么样做?
2.响应客户端请求的Socket操作类(C:vb6.0 S:Java)
3.Socket这一块,做通讯软件,有没有另外需要注意的地方?应该怎样处理?Thanks~!

解决方案 »

  1.   

    你是要做P2P吗?
    一个socket的建立,实际上就是一对C/S,其中S必须是公网上的IP
      

  2.   

    能不能,C1连接到server,C2连接到Server,然后在服务器中,通过某种手段,来建立C1和C2的直通?C1和C2必须有一个在公网IP用户才行吗?另外继续等待,看谁能不能提供一个Socket连接类,对自己写的没信心,感觉都象小孩的玩意
      

  3.   

    能不能详细说下呢,具体怎么来做,有例就更好了,或者提供下这方面的资料
    Thanks!解决问题马上结贴
      

  4.   

    kelong18433() :
    能不能,C1连接到server,C2连接到Server,然后在服务器中,通过某种手段,来建立C1和C2的直通?C1和C2必须有一个在公网IP用户才行吗?
    ======
    答:一般是这样做的,服务器上有一个端口,供所有C来连接,它上面维护一个在线C的列表。某C1启动之后,会自己打开一个监听,然后跟服务器连上,服务器给它一张在线C的列表,同时也把C1的IP(公网IP)和C1的监听端口记录到这个列表中。C1定时跟服务器通信一次(比如3分钟),得到最新的C列表。而服务器也把那些长时间(比如6分钟)没有通信的C从列表中删除。
    C1取到这个列表后,无论它是内网还是外网,都会尝试跟列表中的IP和端口连接,如果某C2处于公网中,那么C1肯定可以联系得到它。但是如果C2在内网中,那么C1将无法联系到它。也不是说C1和C2无法通信,假设C2得到的列表中有C1,而C1处于外网(公网),那么C2可以联系到C1,这也可以。
    也就是说C1和C2中至少有一个有公网IP(当然也可以通过路由器的NAT来实现内网IP映射到外网),它们才可能形成连接。--------------------------
    另外继续等待,看谁能不能提供一个Socket连接类,对自己写的没信心,感觉都象小孩的玩意
    ==========
    这个代码写起来比较复杂,不是写个简单的例子代码就可以搞定的,你可以自己多花点功夫钻研一下
      

  5.   

    非常感谢hbwhwang(我是catmiw的马甲) 的耐心解答,因为我以前是做.net的,对java写东西还不是很清楚,所以非常希望能够看到这方面的源码,哪位朋友能够提供相关资料文档,本人将万分感谢,Thanks2.响应客户端请求的Socket操作类(C:vb6.0 S:Java)
    3.Socket这一块,做通讯软件,有没有另外需要注意的地方?应该怎样处理?
      

  6.   

    (我是catmiw的马甲)  说的不错
    我补充1点,在编写代码的时候,S端获得C端的连接请求以后,建立了socket连接,那么就要以这个socket连接为基础,进行通讯,而不要再建立一条下发的socket,那样会有问题
      

  7.   

    kelong18433() :
    我很不理解,你既然是做.NET的,为什么不就用.NET来做程序呢?为什么扬长避短?
    --------
    如果你一定要范例代码,我可以给你写最简单的
    你加我QQ吧 154863618
      

  8.   

    可能是我没描述清楚,其实做这个,就是要实现,QQ里面,除了娱乐功能外,其它所有的功能,包括视频、语音这些。这是我们项目的一个通讯模块,在线用户大概在十万左右。hbwhwang(我是catmiw的马甲):
    我很不理解,你既然是做.NET的,为什么不就用.NET来做程序呢?为什么扬长避短?
    ___________
    这是头要求的,没办法啊,呵呵
      

  9.   

    现在有两个问题:
    一、线程池的处理
    二、不同公网IP的内网用户,p2p连接问题
    望各位高手指导,谢谢