java网络编程问题

用java网络编程制作一个聊天的功能,如果客户端是通过路由器连到外网的,服务器怎么向客户端发送消息。

1.每个客户端上线的时候都会把自己的IP传给服务器,服务器会维护一个QQ号码与对应IP的列表。
2.
A如果想给B发消息,首先要去服务器上通过B的QQ号查询B的IP,然后与B建立P2P的通信,不怎能是每次通讯都经过服务器的,那样服务器的负载就太重了,肯定没法即时响应。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-09
java socket 只要建立通道 是不分内外网的··

只要客户端给服务器发送了请求··服务器自然能知道客户端的地址··

包括现在你在内网打开一个网页··也是需要提交请求到服务器··然后服务器吧页面反馈给客户端上··道理是一样的··
第2个回答  2010-07-09
服务器不需要考虑那么多,你服务器的IP地址是固定的,客户端不管在那里,只要能访问服务器,服务器就可以把客户端IP地址记录下来,之后直接根据这个IP地址建立连接
第3个回答  2010-07-09
java网络编程也是socket编程

他跟外网和内网没关系,外网和内网的区别是什么?不过是ip不同

只要在new Socket(ip,port)的时候,ip和port传入正确就好了。

这是入门,再有问题只能一步步学习啦,可以问我,最重要选我本回答被网友采纳
第4个回答  2010-07-09
那就连接服务器的外网ip进行通信就好了
相似回答