jjzjj

java - 移动提供商无法进行 UDP 打洞

实际上,我正在编写一个Android应用程序,该应用程序接收连接到电脑的网络摄像头的图片。为了获得更多的fps,我使用udp协议(protocol)而不是tcp。这个想法是,pc将图片发送到手机的ip和端口。但是电话供应商有不同的公共(public)端口。所以我不能直接打电话。这就是为什么我试图通过udpholepunching来解决这个问题,但是那没有用。当我的手机向电脑发送一个数据包时,电脑会获取手机的公共(public)IP和端口。每秒都会发生这种情况以保持连接打开。然后服务器尽可能快地将网络摄像头帧发送到这个ip和端口。但手机在1-2秒内仅收到10-15张图片。在那之后,提供商

ios - UIView drawRect : Draw the inverted pixels, 打洞、开窗、负空间

使用下面的代码,我绘制了一个圆角矩形。它绘制了一个漂亮的实心浅灰色填充圆角矩形(大小为“self”)。我实际上想绘制它的像素反转,即:不是实心圆角矩形,而是在实心浅灰色矩形中的这个圆角矩形形状的窗口或孔。是否有我需要使用的反向剪辑方法?或者我需要使用贝塞尔路径吗?请原谅,如果这是非常基本的,虽然找不到信息。感谢阅读!-(void)drawRect:(CGRect)rect{//getthecontextCGContextRefcontext=UIGraphicsGetCurrentContextCGContextSaveGState(context);//drawtheroundedr

java - 使用打洞通过 TCP 套接字在 android 中通信时出现连接拒绝错误

我正在开发一个android应用程序,它必须在两部手机之间进行实时通信。两部手机上都运行着一个客户端和服务器,我有一个中央服务器,每个服务器的公共(public)IP和端口都与之交换。两部手机都在监听中央服务器以获取通知。假设两部手机都通过中央服务器接收彼此的公共(public)ip和端口,然后在每部手机上我启动客户端,然后启动服务器(这是因为,它以其他顺序失败,因为我正在打洞punching我使用相同的端口进行监听和发送)。下面是我启动服务端和客户端的方式socket=newSocket();try{socket.setReuseAddress(true);}catch(Socket

.net - TCP NAT-Traversal/- 使用 .NET 打洞

我编写了一个应用程序,其中必须将客户端直接相互连接并保持连接。在使用高级技术(google)进行一些研究后,我发现我需要的东西可以通过NAT-Punching或NAT-Traversal来实现。大多数人似乎通过UDP使用NAT-Punching,但就我而言,我需要使用TCP(这是事实,在有人问“为什么不使用UDP?”之前),但我找不到任何这个或至少一个适当的教程的示例代码。所有我能找到的理论附件在哪里,但没有关于套接字或TCPClient的东西(我更喜欢套接字。)。有人可以给我链接一些示例代码,我可以使用这些示例代码连接两个位于NAT后面的客户端,或者可以将我链接到带有示例代码的完整教

java - 如何在不丢失数据包的情况下通过打洞 (STUN) UDP 发送大文件?

在为点对点Java应用程序寻找ICE/STUN库时,我遇到了一个问题。我需要能够确保可靠的交付。我能找到的所有JavaICE库都提供UDP打洞(通过STUN协议(protocol)),但不提供TCP打洞。我希望对等点能够在不需要服务器的情况下通过网络可靠地相互发送文件,但UDP不可靠。如何获得可靠的跨平台点对点数据传输? 最佳答案 我做了一些研究并找到了这个解决方案,称为“伪TCP”——例如:http://nice.freedesktop.org/libnice/libnice-Pseudo-TCP-Socket.html伪TCP是

java - TCP 打洞 - 如何进行这一步

我用Java完成了一个在LAN范围内运行良好的P2P程序,现在我陷入了众所周知的NAT穿越问题。我想让我的用户通过NAT边界相互连接(我知道不可能100%做到这一点)。我已经阅读了很多关于这个主题的文章,虽然我已经理解了这个概念,但我仍然对进行TCP打洞持怀疑态度。我想做的是将两个客户端相互连接(他们住在同一个NAT下),ip分别是192.168.100.1和192.168.100.2(它们可以直接相互连接)。他们首先通过端口80上的套接字连接到PHP服务器。服务器注册其公共(public)ips和端口,类似这样:客户端1:200.000.000.1:1478客户端2:120.000.

networking - p2p应用:的TCP打洞流程是否正确

使用stun我将获得我的外部ip/端口和NAT类型。在我的中间服务器(公共(public)ip)上,我将注册对等点的外部ip/端口(现在服务器知道对等点1和2的外部ip/端口)。交换ip/端口(对等点1将了解对等点2的ip/端口)。同时从两个对等点调用connect()。这是正确的流程吗? 最佳答案 您的算法对于UDP是正确的。查看这些帖子以获取更多信息:TCPHolePunch(NATTraversal)Libraryorsomething?UDPHolePunchingTCPHolePunching

linux - 何时使用 TCP 打洞技术以及为什么使用它?

我正在研究TCPholepunching技术,从这篇文章中获得了一些知识:TCP_hole_punching.但我不明白下面的部分:NetworkDrawingPeerA←→GatewayA←..Network..→GatewayB←→PeerBTypesofNATTheavailabilityoftheTCP-hole-punchingtechniquedependsonthetypeofcomputerportallocationusedbytheNAT.Whentwopeers,AandB,instantiateTCPconnectionsbybindingtolocalport

node.js - Node.js 中的 TCP 打洞

我正试图通过node.js中的两个NAT打一个TCP漏洞。问题是我不知道如何选择连接应该使用哪个本地端口? 最佳答案 创建与公共(public)服务器的连接后,您还需要监听用于建立该连接的完全相同的本地(!!)端口。我将您的测试代码扩展为完整的tcp打洞概念验证://server.jsvarserver=require('net').createServer(function(socket){console.log('>ConnecttothispublicendpointwithclientB:',socket.remoteAdd

windows - TCP 打洞

我正在尝试使用mingw工具链通过Windows套接字实现TCP打洞。我认为这个过程是正确的,但洞似乎并没有采取。我用了this作为引用。A和B连接到服务器SS发送给A,B的路由器IP+它用来连接到S的端口S对B做同样的事情A启动2个线程:一个线程尝试使用S发送的信息连接到B的路由器另一个线程在连接到S时正在用于连接其路由器的同一端口上等待传入连接B做同样的事情我认为代码没有问题,因为:A和B确实互相获取了ip和端口以供使用当他们联系服务器时,他们都在监听他们用来连接路由器的端口它们都连接到正确的ip和端口但超时(代码错误10060)我错过了什么?编辑:在进程浏览器的帮助下,我看到其中