JAVA P2P实现即时通信的思路

上海-java-admin 2012-03-27 08:18:30
大家好,现在客户要求做一个网页版的即时通信功能,项目经理说要用P2P技术做,我了解了下,知道一端监视一个端口比如:
······
ServerSocket serverSocket = new ServerSocket(10000);
Socket s = serverSocket.accept();
······
然后会阻塞在这里一直等到有消息触发;
其他端:
······
Socket s = new Socket("127.0.0.1", 10000);
······
可以发送消息给本机 10000端口的应用程序,这样子再加上点代码就可以达到信息的发送和接受,
但是我有点不明白,也是希望大家帮我指明思路的:
如果我要发送一些信息到一个网吧里面的一台机器上,或者是某个公司的机器上,这些机器相对于外网只是一个内网的ip没有公网的ip,这样子我即时知道他们的端口号不知道他们的公网ip是发送不了信息过去的,唯一能想到的是在他们的路由器上做一个端口映射,就能通过公网ip+外部端口映射到内部的ip到端口对应的应用程序上。
但是不可能每个路由器上我都去人工的做一个端口映射吧,而且我不确定这两台要即时通信的机器是哪两台,不可能去人工在路由器上配置端口映射的,请问这怎么解决。
如果您有很标准清晰的答案而且觉得在这里说很麻烦那么请留下您的QQ,在你闲下的时候来请教您,谢谢。
...全文
267 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
牙痴 2012-03-28
  • 打赏
  • 举报
回复
ls 正解 mina session.write(xxx); 关键的是你的协议是什么。。。web端用什么 http? 如果是http的话就要自己写协议解析decode encode
cxw3152 2012-03-28
  • 打赏
  • 举报
回复
建议你在网上找找 apache mina这个比较好。 。是一个开源的已经实现了通讯。。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧