首页 文章
  • 0 votes
     answers
     views

    如何维护Socket连接?

    假设我们有聊天应用程序,它允许我们有联系人,我们可以与我们的联系人聊天 . 我们的应用程序在发送消息时应该像接收消息和客户端一样运行 . 在Java中,当我们想要 Build TCP连接客户端时,我们使用套接字作为: Socket client = new Socket(hostIPAddress, portNumber); 现在,我已经学会了使用我的本地机器作为服务器使用套接字,但是为了使聊天...
  • 2 votes
     answers
     views

    标准聊天应用程序

    快速提问:大多数聊天应用程序(即AIM,Skype,Oovoo)是否使用点对点UDP交换与其他用户交谈或与服务器 Build 回显的TCP连接?或者介于两者之间?
  • 0 votes
     answers
     views

    TCP实际上是否定义'TCP server'和'TCP clients'? [关闭]

    在维基百科article中,使用术语'client'和'server'解释TCP通信 . 它还使用了'peers'这个词 . 但据我所知,TCP标准没有定义“TCP客户端”和“TCP服务器” . 在RFC 675文档("Specification of Internet Transmission Protocol Program")中,单词"client"永...
  • 0 votes
     answers
     views

    重定向打开TCP连接

    是否可以将打开的TCP连接重定向到第三个设备? 例如,我有两个客户端都连接到中央服务器 . 两人都发起了沟通 . 他们无法接受来自互联网以外的任何连接,因为路由器的防火墙阻止了它们 . 如果他们想要相互连接怎么办?是否可以将两个连接重定向到服务器,成为客户端之间的一个点对点连接? (我觉得这是不可能的)我的程序允许两个设备都可以作为TCP服务器工作,只是防火墙阻止它们 . 目前我使用两种解决方案在...
  • 11 votes
     answers
     views

    如何在没有任何重定向配置的情况下使TCP服务器在路由器(NAT)后面工作

    场景如下 . 我有两台机器A和B:A:客户端(NAT后面)B:服务器(NAT后面) 我希望B能够侦听任何给定的端口,以便A可以通过该特定的TCP端口向B发送数据包并接收任何响应 . 如果两台机器都不在NAT后面,那么这是一个非常直接的过程 . 但是,我如何使其工作,以便即使B在路由器后面,它没有他必须改变路由器配置启用一些端口转发等... 例如,如果没有用户配置任何东西,像torrent客户端这样...
  • 11 votes
     answers
     views

    在NAT后面进行UDP打孔

    我试图在Java中实现UDP-Holepunching的简单草图来测试它的概念,并在稍后的C / C应用程序中使用它 . 概念: 从维基百科我可以理解这个概念:让A和B成为未定义网络结构背后的客户端,C是众所周知的公共可达服务器 . A将数据包发送到服务器C,服务器将其保存为's IP-Address and port. C will get the public IP-Address of ...
  • 1 votes
     answers
     views

    与simple-peer(WebRTC)自动连接[关闭]

    是否可以使用simple-peer(https://github.com/feross/simple-peer)自动连接两个用户?我试过,但我的问题是没有办法知道其他对等的id,因为还没有连接,因为据我所知,peer.send()方法需要连接 . 所以我所做的是: 当您去测试#init时,您会获得一个ID,因为您是发起人 . 当你去测试?other_Id = {“type”:“offer”...
  • 157 votes
     answers
     views

    分布式哈希表(DHT)的简单基本解释

    任何人都可以解释一下DHT的工作原理吗? 没什么太重,只是基础 .
  • 12 votes
     answers
     views

    远程VideoStream无法与WebRTC一起使用

    编辑:我写了一个详细的教程,解释如何构建一个简单的Videochat应用程序,包括一个信号服务器: 教程:使用HTML和JavaScript创建自己的Videochat-Application 如果您觉得它有用且易于理解,请告诉我 . 谢谢! 我试图让Streams通过WebRTC和Websocket(nodejs-server)工作 . 据我所知,通过SDP的握手工作,并 Build 了Pee...
  • 3 votes
     answers
     views

    WebRTC如何区分发送给同行的视频质量

    我需要一些名为webRTC的新技术帮助 . 让我们考虑具有三个对等体的WebRTC网状网络的这种情况 . 对等体A具有来自其凸轮的HD流,并且与其他2个对等体B和C共享.B和C不发送任何数据 . A和B之间的连接相当好,对等B可以全高清欣赏视频 . 虽然A和C之间的连接比A和B慢,但它不支持HD流,因此B没有平滑的流 . 然而,B将平稳地支持较低质量的视频,例如640x480 . 我想为两位客户...
  • 1 votes
     answers
     views

    每个NAT下的P2P网络

    我正在做一些移动项目,需要与两个设备进行P2P通信 .我遇到了问题 . (因为智能手机很少有公共IP) 我找到了一些答案 . 它是'UDP Hole Punching' . 我想我从概念上理解'UDP Hole Punching'100%并编写一些代码 . 但它不起作用 . 这是我的情况 . Device A connected NAT(A) for Wi-Fi. Device B conn...
  • 2 votes
     answers
     views

    防火墙和NAT后面的P2P消息传输

    我有两个java应用程序在世界上两个不同的地方的两台不同的机器上运行 . 机器可以在NAT后面(或不!) . 应用程序应该传输一些数据(<500kb) . 我们有一个服务器,它可以做任何事情(比如提供对等体的IP地址),但是来自应用程序的数据必须始终是点对点传输的 . 无法通过服务器路由数据 . 我是否必须处理防火墙混乱?我是否必须设置端口转发?JXTA或JGroups是我需要的东西吗? U...
  • 0 votes
     answers
     views

    如何在NAT后面的两个节点之间进行通信?

    我有一些节点 . 每个节点都属于其他网络 . 每个节点都有私有IP,如 192.168.0.2 ,并留在NAT后面 . 节点之间是否有可能进行通信?实际上,我需要在这些独立节点之间传输文件 . 我尝试使用这个项目 - https://github.com/libp2p/go-libp2p . 但 libp2p 有一些限制: 两个节点都有私有IP地址(同一网络) 其中至少有一个拥有公共IP...
  • 1 votes
     answers
     views

    Android在wifi直接和非wifi直接设备之间传输数据

    WiFi直接的Wiki规范声称“只有一个Wi-Fi设备需要与Wi-Fi Direct兼容才能 Build 点对点连接,直接在彼此之间传输数据,同时大大减少了设置” . 但是从android API来看,在我看来,这两个设备都需要启用WiFi-Direct,否则将无法找到另一个 . 这是真的还是有一种方法可以在WiFi直接和非WiFi直接启用设备之间共享p2p? 谢谢
  • -3 votes
     answers
     views

    使用TCP / IP创建P2P应用程序? [关闭]

    我正在创建一个没有中央服务器的C#P2P聊天信使 . 我需要有关如何开始实施模型的帮助 . 我想到的是向网络上的所有计算机发送UDP广播 . 然后接收计算机将接收它,并将该新对等体添加到哈希表 . 然后使用嵌入在每个程序中的TCP服务器 . 消息将以TCP形式广播到散列表中列出的所有计算机 . 而另一个同伴会收到它然后发出自己的消息 . 这是创建peer2peer聊天应用程序的可行方法,还是有更好...
  • 0 votes
     answers
     views

    如何开发P2P聊天Web应用程序

    我正在开发基于asp.net web的点对点聊天应用程序 . 我正在使用UDP套接字进行通信 . 由于我的应用程序是P2P,我应该避免与服务器的交互,让同行发送和接收他们的消息 . 现在我的怀疑是我想在哪里编写套接字相关的编码?如果我在控制器类中编写与套接字相关的编码,编码是否在服务器端?每当用户从浏览器发送消息时,它将调用我的控制器类,其中定义了套接字,并将消息发送到远程对等体 . 这种套接字编...
  • 3 votes
     answers
     views

    与AsyncSocket类进行点对点聊天

    我想使用AsyncSocket类进行点对点聊天 . 我已经能够制作一个示例聊天应用程序,其中一个用户可以通过使用它将消息发送到服务器然后从服务器发送到其他用户来与其他用户通信,但我发现它有一些难以管理的套接字 . 在两个节点上实现时,AsyncSocket类提供的服务器和客户端委托中的点对点聊天和混淆 . 我尝试通过net搜索一些示例代码,它使用AsyncSocket类 Build peer -t...
  • 3 votes
     answers
     views

    C#P2P聊天应用程序设计

    我想创建一个不使用显式服务器的简单聊天应用程序 . 主要要求是用户可以同时与许多朋友聊天(就像在Skype等上一样) . 我不是说这里的 Session 聊天,只是多个单独的聊天窗口 . 目前,我只想要一个局域网消息传递应用程序,但我很欣赏,如果设计很容易扩展到Internet连接 . 我想知道什么样的设计适合这种应用 . 您如何看待解决方案,其中每个用户应用程序都有一个 TcpListene...
  • 0 votes
     answers
     views

    编写简单的P2P聊天应用程序

    这是我第一次使用P2P,我需要一些关于设计的帮助 . 我正在开发一个简单的messenger应用程序 . 我有一个目录服务器,每个用户都在其上进行身份验证,并宣布一个可以访问每个用户的开放端口 . 目录服务器维护用户和端口,我可以查询目录服务器以查找任何特定用户 . 这部分完成了 . 第二部分是我认为应该是P2P的聊天 . 我可以开始聊天,也可以作为聊天的终点(客户端和服务器) 令我困惑的是我如何...
  • 4 votes
     answers
     views

    Boost :: Asio点对点udp聊天

    我正在编写点对点(它不应该有服务器 - 这是一项任务)程序来交换文本消息 . 这是一个非常小的聊天 . 简单的消息,没有别的 . 这是我在Boost :: Asio的第一次练习,因此我有一些问题 . 正如我所说,我的聊天应该是点对点的,它应该使用udp协议 . 我认为,最好的方法是使用广播 . 第一个问题:我如何了解新的联系? 另一个问题是发送消息:我在广播地址发送它,然后它传播到本地网络中的所有...
  • 0 votes
     answers
     views

    Java点对点udp聊天室

    我是Java套接字编程的新手,我正在开发一个小型的对等UDP聊天室应用程序,允许多个客户端相互聊天 . 我的问题是,当他点击连接按钮时,如何让客户端发现所有其他连接的客户端,只提供一个连接的客户端ip和端口?该程序仅在本地网络上运行 .
  • 4 votes
     answers
     views

    NAT转换不在网络内部工作(发夹条件)

    我正在写一个P2P应用程序 . 对等体定期ping主服务器以更新其当前的IP /端口,因此当对等体想要到达另一个时,它可以向服务器询问该信息 . 现在,对等体使用UPnP配置NAT(用于经典家庭设置)可从外部访问 . 所以一切正常,除非对等服务器和服务器都在同一个NAT后面 . Since in that case the client is trying to reach its own &...
  • 2 votes
     answers
     views

    在Gnutella中,PUSH如何通过防火墙或NAT盒工作?

    我想了解更多有关Gniutella P2P协议如何工作的信息 . 我已经阅读了GnuFU和我能找到的最新协议规范(0.4),但我对PUSH如何通过防火墙或NAT盒工作有一些疑问 . 案例1:Alice通过NAT盒或防火墙连接到Internet . 她看到Bob有一个她想要下载的文件 . 鲍勃没有防火墙 . 因此Alice的客户端打开与Bob的机器的TCP连接并下载该文件 . 没问题 . 情况2:与...
  • 1 votes
     answers
     views

    NAT路由器在拒绝来自先前打开的连接的传入数据包之前等待多长时间

    在拒绝数据包之前,NAT路由器通常允许来自先前打开的TCP流的传入数据包多长时间?我正在开发一个P2P应用程序,我宁愿不保持与中央服务器的开放连接和中继数据包 . 相反,我想让客户端轮询中央服务器,保存这些IP和端口号,然后从服务器返回到每个客户端,以便稍后启动P2P连接 . 如果NAT允许数据包长时间存在,这是可行的 . 如果这是不可能的,有谁知道其他P2P应用程序如何 Build NAT Tr...
  • 2 votes
     answers
     views

    没有外部服务器的NAT遍历

    我一直在阅读TURN和STUN服务器,因为我想开发一个浏览器到浏览器的应用程序,以便BrowserA(在NAT后面)可以与BrowserB(在NAT后面)进行通信 . 在这种情况下,我认为我应该使用TURN协议 . 我的问题: is there any other solution that does NOT require an external phisical server? 一个公正的软件...
  • 2 votes
     answers
     views

    什么类型的NAT组合需要TURN服务器?

    根据: https://en.wikipedia.org/wiki/Network_address_translation NAT配置有4种类型: 全锥,地址限制,端口限制和对称 . 现在,假设我们在不同的网络上有客户端A和客户端B,并且隐藏在他们自己的独立NAT之后 . “客户端A NAT类型”“客户端B NAT类型”的哪些组合需要TURN服务器(如果他们想要p2p通信,则不能通过STUN协议解...
  • 9 votes
     answers
     views

    Android:NAT Traversal?

    在我看来,较新的Android设备在NAT后运行,其中本地地址是内部运营商或LAN地址,公共地址是路由器或运营商分配的外部地址 . 然而,使用NetworkInterface时,较新的电话不会像访问IP检测服务时那样返回相同的地址 . 因此,通过直接P2P SocketChannel连接本身就会失败 . 针对Android平台设计此问题是否有任何常见的解决方法?任何人都可以澄清导致这种类似NAT的...
  • 4 votes
     answers
     views

    NAT转换不在网络内部工作(发夹条件)

    我正在写一个P2P应用程序 . 对等体定期ping主服务器以更新其当前的IP /端口,因此当对等体想要到达另一个时,它可以向服务器询问该信息 . 现在,对等体使用UPnP配置NAT(用于经典家庭设置)可从外部访问 . 所以一切正常,除非对等服务器和服务器都在同一个NAT之后 . Since in that case the client is trying to reach its own &...
  • 3 votes
     answers
     views

    对称NAT的优势是什么(就ISP而言)?

    在尝试通过WebRTC连接两台机器后,我了解到其中一台机器位于对称NAT后面(这是一个很好的article关于它的Philipp Hancke) . 从那时起,这台机器没有改变,所以我认为ISP必须做些什么 . My questions are: 使用对称NATS有什么好处? 由于使用TURN服务器的成本很高,因此启用对称NAT可能会成为点对点连接的重点,因为它会阻止开发人员使用WebRT...
  • 0 votes
     answers
     views

    NAT后面的两台主机用于P2P文件传输的协议是什么?

    我正在尝试构建一个使用Java在主机之间进行p2p文件传输的应用程序 . 它适用于具有公共IP的主机,但在我的家用计算机上测试时失败 . 然后我发现我家里的所有电脑都有相同的IP . 所以,我得出结论,我的ISP使用NAT重载 . 如果我的ISP这样做,很多其他ISP也可能做NAT . 我希望我的应用程序甚至可以在NAT后面工作 . 我做了一些研究,发现在这种情况下UDP可能更合适,因为UDP打孔...

热门问题