首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

两个Socket怎么通信

2013-03-06 
两个Socket如何通信新人问题:实现类似与QQ私聊问题:两个Socket如何通信,在建立连接的时候,可以由ServerSoc

两个Socket如何通信
新人问题:
实现类似与QQ私聊问题:
两个Socket如何通信,在建立连接的时候,可以由ServerSocket介入一下,建立完后两个Socket就可以相互通信,而不经过服务端;求思路或百度上的学习资料

ps:UDP方式的话,就不用介绍了,只想用Socket两个Socket怎么通信

三天内都在线等,谢谢各位先啦
[解决办法]
Server 起到转发的作用,就是你收到信息client的信息还有发送地址,通过地址再发给另一个client。

否者就是所有的端 既可以做client 又可以做server。
[解决办法]
看看P2P
若不用SERVER的话
只能固定IP和PORT
[解决办法]
先用tcp,从服务器上两个人都知道了各自的地址后再用udp

然后就没有别的办法了
[解决办法]
其实是楼主对ServerSocket与Socket的理解问题,如果是两台机器在通信的话,不存在转发问题,只需要将其中一台机器运行ServerSocket,另一台机器与其联接,之后进行P2P通信就可以了,只要你的ServerSocket是单线程的,在两台机器断开前,就不会与第三台机器联接,应该就可以达到楼主的要求了。
[解决办法]
其实是楼主对ServerSocket与Socket的理解问题,如果是两台机器在通信的话,不存在转发问题,只需要将其中一台机器运行ServerSocket,另一台机器与其联接,之后进行P2P通信就可以了,只要你的ServerSocket是单线程的,在两台机器断开前,就不会与第三台机器联接,应该就可以达到楼主的要求了。
[解决办法]

引用:
其实是楼主对ServerSocket与Socket的理解问题,如果是两台机器在通信的话,不存在转发问题,只需要将其中一台机器运行ServerSocket,另一台机器与其联接,之后进行P2P通信就可以了,只要你的ServerSocket是单线程的,在两台机器断开前,就不会与第三台机器联接,应该就可以达到楼主的要求了。

sockets 协议是要经过三次握手的。两个socket不可以通信 
除非在建立一条新的scoket。
也就是2楼讲的方法
[解决办法]
   其实你是用语错误了.  让周围人不是很能明白你的意思. 很多技术都有专门的术语.术语对于交流很关键.
   你说的问题在现实环境中就是P2P技术要去解决的问题 , 网上资料很多, 像UDP型的P2P基本上有直接可用的代码了. TCP型的代码不多,但是原理上已经讨论的很透彻了. 搜索下P2P吧. 祝好运.
   另外2个socket是不可以通信的(按你的说法),一个TCP socket的定义就决定了IP 和端口号,不存在什么把2个socket连起来的说法.(读一下TCP/IP详解 第一卷 就能很快明白所有的这一切了).  不使用P2P技术的话,在用户几乎都是通过NAT上网的情况下,互相发消息是肯定要服务器转发的.
[解决办法]
引用:
引用:
另外2个socket是不可以通信的(按你的说法),一个TCP socket的定义就决定了IP 和端口号,不存在什么把2个socket连起来的说法.(读一下TCP/IP详解 第一卷 就能很快明白所有的这一切了). 不使用P2P技术的话,在用户几乎都是通过NAT上网的情况下,互相发消息是肯定要服务器转发的.

谢谢你的回答:
怡笑方家啦,刚学网编,……


总感觉楼主的想法不符合网络协议的定义,一个套接字就是一对主机端对端的连接,怎么可能硬把两个套接字的两头接在一起呢?而且不管是哪方先发起的通信,两方都可以互相发送信息 。。。不需要建立两个套接字。。。
[解决办法]
巧了 
我最近两天也打算有空弄弄这个 
能实现局域网通信的东西


我是这么想的
为什么要两个SOCKET 直接通信呢?

QQ不也是必须 两个人都能上网才能通信的么 
不能俩人 上QQ的时候都连着网 只要登录了 QQ后 网线 一拔 ,俩人都在 一个局域网里 就能通信
这样是不合理的

ClientA连接到 SERVER后 ,如果想跟ClientB通信 
ClientA只需把通信内容和目的地址(ClientB)发送给Server,
Server来解析这个自定义的协议 ,就知道ClientA要发的目的地址和发的内容了

这样每次都走一遍Server应该就能实现LZ说的 “私聊” 问题了吧


我就用这个思路,打算这几天有空把它弄出来
我也新手 说得不一定对啊~共同学习进步

[解决办法]
flowerjack:
   其实socket就是一个IP和端口 对, 本质上其实不存在socket这个玩意. 建议你看下<tcp/ip详解 第一卷的相关章节> 花不了多少时间,专心点,一个星期就可以看完整个第一卷,要理解这部分内容,半个星期就足以了. TCP/IP协议方面,这书基本属于无敌状态,十几年来,业界几乎没有第2本相关内容的书籍了(UNIX 网络编程 除外). 因为这一本太经典了.
   看完那本书,再加上网络上对P2P技术详细的文章和代码,我相信你压根不需要再看这个帖子了.



   我注意到了这是J2ME版块, 要是涉及运营商的网络,P2P也许没那么轻松.  转发服务器其实挺好的.QQ的聊天也会过服务器(同时也有P2P). 如果过重,那是因为服务器端逻辑太差的原因.你应该好好的审视下自己服务端的程序代码.做到对服务器CPU的影响,只是一个简单的转发.(你是否是线性查找用户? 尽量做到常数级的复杂度).

热点排行