首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >建立P2P连接,或将套接字“传递”给其他人

建立P2P连接,或将套接字“传递”给其他人
EN

Stack Overflow用户
提问于 2012-06-28 17:37:18
回答 1查看 605关注 0票数 1

我想更好地了解网络可以做些什么,我目前正在开发一些安卓应用程序,我想以某种方式在WiFi和/或3G/4G上实现某种P2P连接。我知道在这样做的过程中会出现很多困难,但我仍然想知道如何开始解决这个问题,或者有一个方向。

我有一个想法,我认为如果它有效的话,我可以避免所有穿越NAT的麻烦(我绝对不会假装我是第一个想出这个想法的人):

Jim和John都连接到服务器。服务器将它们放在同一个盒子中,并相互转发消息。在某些时候,服务器对浪费带宽感到厌烦。他和吉姆有一个连接的插座,和约翰也有一个连接的插座。所以“不知何故”(也许是魔术般的),他把他的to-John-Socket给了Jim,反之亦然。

因此,新的场景是: Jim走过来对John说:“嘿,服务器,给我一个套接字”:服务器:好的,在这里等他来。约翰:嘿,服务器,给我一个插座给吉姆。服务器:哦,你在这里!吉姆,拿着约翰的插座。约翰,拿着吉姆的插座。再见了伙计们!

服务器回去做他的小生意,而吉姆和约翰做他们自己的事情。

我想肯定不是这么简单的。那么我该怎么做呢?如果我在某些时候需要穿越NAT网关,我该如何做(我自己,没有库)?

EN

回答 1

Stack Overflow用户

发布于 2012-06-28 19:30:16

我认为你的尝试是可以实现的,但如果你从零开始,那么做起来肯定是困难和耗时的。我不是网络编程方面的专家,但我对可能会遇到的复杂性有足够的了解。

如果您想了解一些网络编程的背景信息,那么即使您不熟悉Unix Network Programming,我也建议您阅读UNIX这本书。虽然它是非常技术性和详细的C代码,但它为套接字等提供了一个非常好的背景,因为套接字的想法来自UNIX。

如果我正在做类似的事情,那么我会尝试并查看一些开源项目,比如列出的here,甚至是Yahoo Messenger SDK。谷歌一下“开源p2p”可能也会给出一些提示,不过我想很多都是用C/C++写的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11241839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档