草庐IT

iphone - 在游戏套件中谈判 2 人比赛时遇到麻烦

我收到一些无法从GameKit解码的行为。有时完成邀请的玩家会陷入“等待...”循环,无法根据他的邀请完成交易。我相信这与多任务处理和邀请处理程序有关……似乎如果被邀请者的应用程序从头开始,那么邀请就可以被正确接受。但是这个机制对我来说不是那么透明。关于可能缺少什么的任何线索?我被文档蒙蔽了双眼。 最佳答案 有时当两个玩家之间的比赛开始时,一个玩家可能还没有连接状态。在实际开始游戏之前,您应该检查是否需要更多玩家连接。如果大于0,则不开始游戏,而是等待玩家连接,只有当该玩家连接时才开始游戏。所以在您设置游戏的方法中,代码看起来像这样

tcp - iperf TCP 比 UDP 快得多,为什么?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭去年。Improvethisquestion我想知道为什么iperf在TCP中比UDP表现出更好的性能。这个问题与this非常相似一个。UDP应该比TCP快得多,因为没有确认和拥

networking - 如果您可以在浏览器中访问比 TCP 更低的级别

我正在了解NetworkProtocols,然后看到靠近最低层的是原始以太网协议(protocol):Ethernet:thisisthebasicprotocolthatsendsdatatoanothermachineonyourlocalnetworkusingyourMACaddress.Thisisthebuildingblockforalltherestasyouneedtosenddatatotherouterifyouwanttocommunicatewiththeoutsideworld.上面是互联网协议(protocol)(IP),TCP和UDP就是例子。在TCP之

networking - 返回 N 比。选择性重复

对于流水线错误恢复,GoBackN优于选择性重复是否有任何原因?显然,SR在接收端需要一个缓冲区(大小合适),这是它唯一的弱点吗?在任何情况下GBN会被排他性地优先考虑? 最佳答案 我的回答可能与你的问题不太相关,但它侧重于SelectiveRepeat的接收缓冲区问题。SelectiveRepeat是处理UDP不可靠性的更智能、更有效的方法。但前提是实现得当。如果我们很好地实现它,那么我们就不需要担心接收缓冲区。例如,如果您选择threading方式,那么很容易将数据保存在缓冲区中。现在您不需要为整个早期到达的数据制作一个缓冲区。

networking - 在拥挤的局域网中,UDP 发送速度是否比 TCP 快?

我有一个实时应用程序(使用websockets的C++)必须通过拥挤的LAN进行通信。因为它是实时的,所以不能容忍延迟。在这种情况下,UDP的性能会优于TCP吗?我不能容忍数据包丢失,但如果使用UDP,可以通过重试来解决。 最佳答案 在拥塞的网络中,是的,UDP将发送它的数据包比TCP更快,这是因为TCP使用称为congestioncontrol的机制将拥塞考虑在内。.UDP没有拥塞控制,因此它会以本地网络接口(interface)允许的速度发送数据包。因此,如果您的首要任务是发送数据包,那么UDP就是最佳选择。但是,如果您也有兴趣

java 网络,写入调用平均比读取调用长 4 倍,这正常吗?

更具体地说,我用javaNIO编写了一个服务器,它运行良好,经过一些测试我发现由于某种原因,平均调用SocketChannels写入方法需要1毫秒,读取方法另一方面平均需要0.22毫秒。现在一开始我在想在Socket上设置发送/接收缓冲区值可能会有一点帮助,但在考虑之后,所有的消息都很短(几个字节),我大约每2秒发送一条消息在单个连接上。发送和接收缓冲区的大小都超过1024字节,所以这不是真正的问题,我确实有几千个客户端同时连接。现在我对此有点不知所措,这正常吗?如果正常,为什么? 最佳答案 我会先使用Wireshark来消除变量。

c# - 为什么异步客户端 TCP 操作的性能似乎比同步 TCP 操作差?

我使用SocketAsyncEventArgs在C#中编写了一个高性能TCP服务器。我一直在用两个非常简单的客户端测试它的性能,每个客户端创建2000个并行连续循环。一个客户端使用对TcpClient的异步调用;另一个使用同步调用。异步Parallel.For(0,numClients,parallelOptions,asynci=>{while(true){vartcpClient=newTcpClient();try{awaittcpClient.ConnectAsync(host,port);awaittcpClient.GetStream().WriteAsync(messag

python - Twisted > 如何读取比 TCP 帧长度更长的 TCP 消息,例如来自窗口 TCP 客户端的 1380 字节

我正在编写一个扭曲的服务器来读取最大64KB的TCP消息。我发现mtdatareciever被linereciever类每1380字节调用一次,结果是Windows客户端的TCP帧大小。有没有一种方法可以解决这个问题而不必遍历这些1380字节的block?fromtwisted.internet.protocolimportProtocolfromtwisted.internet.protocolimportFactoryfromtwisted.enterprise.adbapiimportConnectionPoolclassCSVReceiver(Protocol):defdata

java - 为什么我的 TCP 系统比 UDP 系统快?

我有两个(客户端-服务器-客户端)系统。第一个使用TCP,第二个使用UDP。有趣的是,在传输5-6MB的文件时,我使用TCP的系统比使用UDP的系统更快。出现问题是因为我的编码错误还是会发生?TCP客户端try{socket=newSocket("localhost",7755);}catch(Exceptione){System.out.println(e.getMessage().toString());}out=newPrintWriter(socket.getOutputStream(),true);inti=0;while(file.hasNext()){Stringline

c++ - 使用 Tcp,为什么大数据 block 的传输带宽比小数据 block 低?

使用2台装有WindowsXP的PC,64kBTcp窗口大小,用交叉线连接使用Qt4.5.3、QTcpServer和QTcpSocket发送2000条40kB的消息需要2秒(40MB/s)发送1条80MB的消息需要80秒(1MB/s)有人对此有解释吗?我希望较大的消息传输得更快,因为较低的层可以更有效地填充Tcp数据包。 最佳答案 如果没有看到您的代码,很难对此发表评论。发送方如何安排时间?你什么时候知道你已经完成了?客户端如何读取数据,它是读入固定大小的缓冲区并丢弃数据,还是它以某种方式知道(从框架中)“消息”是80​​MB并尝试