草庐IT

Networking

全部标签

networking - 在游戏中使用多个端口有什么好处?

在游戏中使用多个端口有什么好处?我明白为什么有些人会出于不同的目的结合使用TCP和UDP,但为什么有些游戏会使用多个TCP或UDP端口?这有什么好处吗?我问这个问题是因为我发现自己在为我的游戏编写网络代码,我想知道为什么其他人会不顾一切地拥有多个端口?例如GTAV使用5个UDP端口,而刺客信条启示录使用4个TCP和4个UDP端口。 最佳答案 总是有原因的。它们通常不是(完全)技术性的。例如,一个团队正在研究游戏间聊天功能,而另一个团队正在研究游戏X的服务器-客户端协议(protocol)。然后他们被集成到同一个产品中,但由于成本、时

linux - echo 2 >/proc/sys/net/ipv4/tcp_mtu_probing 能够解决我的问题,但为什么呢?这个命令是做什么的?

我无法将大于1.2kB的文件从我的系统(Ubuntu)上传到我的网站,请求一直停滞不前。不知何故我发现了这个命令echo2>/proc/sys/net/ipv4/tcp_mtu_probing现在我可以将任何大小的文件从我的桌面上传到我的网站。我不知道这个命令的作用以及为什么会这样。请帮我找出这个问题。我在我的桌面上运行了echo2>/proc/sys/net/ipv4/tcp_mtu_probing并且它起作用了我没有在服务器上做任何改变。 最佳答案 根据man7tcp:tcp_mtu_probing(integer;defaul

c - 是否可以同时执行 sendto() recvfrom() ?

我正在使用UDP套接字制作非常简单的TCP模拟网络应用程序。但是,我想同时使用和调用sendto()、recvfrom()函数来实现使用称为“选择性重复”的协议(protocol)的流水线操作。我的意思是不像发送、等待、接收、发送、等待、接收...那样排序,我的意思是像这样发送、发送、发送、接收、发送、发送、接收、接收,没有任何调用顺序sendto(),recvfrom(),就是这些函数的随机调用。但基本上,如果我不能同时使用这些函数,sendto()、recvfrom()就像停止和等待协议(protocol)一样。但是,在流水线实现中,sendto()、recvfrom()函数同时起

http - HTTP/HTTPS 可以使用 UDP 吗?

UDP不可靠。不保证消息传递无确认、重传或超时不保证交货顺序没有数据包序列号,没有重新排序,没有队头阻塞没有连接状态跟踪没有连接建立或拆卸状态机无拥塞控制没有内置的客户端或网络反馈机制据我所知,HTTP/HTTPS使用的是TCP。是否也可以使用UDP建立HTTP/HTTPS连接? 最佳答案 它现在被谷歌用作chrome服务的实验性调查。引用:http://c3lab.poliba.it/images/3/3b/QUIC_SAC15.pdf 关于http-HTTP/HTTPS可以使用UDP

objective-c - 并行 TCP 连接的数据传输速度较慢

我使用TCPAsyncSocket使用本地连接(使用主机作为本地IP地址)将大文件从一台机器传输到另一台机器。首先,我做了单TCPsocket连接的设置,感觉数据传输速度很慢。大约1mb/秒。为了让它更快,我创建了10个TCP套接字(在不同线程上的不同端口上连接)并开始同时读取文件的分区。但这没有任何区别。传输速率几乎与单个TCP套接字连接相同(甚至更慢)。有什么想法吗?为什么多个TCP套接字不能并行传输数据?通过TCP快速传输文件的任何方法或建议? 最佳答案 仅当I/Ochannel未饱和且任务受限于单核时,并行化I/O操作才有用

c - TCP 操作超时

我有一个用C编写的TCP服务器和客户端,它们打开了一个应该永远打开的连接。在第一次发送时,errno返回0,这很好。在随后的发送中,它给了我一个errno60,这是操作超时。服务器仍然收到数据包,似乎没有任何问题。什么可能导致错误号被设置?是否最好忽略此错误,因为它似乎工作正常? 最佳答案 随机猜测:errno仅在函数失败时设置。如果函数没有失败,errno保持原样。它未设置为0。以下是错误的:send(…);if(errno){perror("send");}相反,您必须检查发送的结果:ssize_tres=send(…);if(

java - 从 Java 编程的角度来看,多播对网络程序有何不同?

我的经理要求我评估需要进行哪些更改才能为作为交易系统一部分的基于套接字的TCP/IP网络程序添加多播支持。据我所知,从Java程序的角度来看,程序是单播还是多播似乎并没有太大关系。难道Java网络API没有让这一切变得透明吗?我的意思是,更改是否只是简单地为传出连接添加其他目的地? 最佳答案 据我所知,TCP不支持多播。多播通常通过UDP完成。UDPbydesignisnotareliabletransport.也就是说,无法保证数据报到达目的地,并且在到达目的地时也没有送达报告。在thisquestion中讨论了一些可靠的多播解决

networking - 定义做某事所需的时间(延迟、吞吐量、带宽)

我了解延迟-消息从发件人到收件人所需的时间-和带宽-在给定时间内可以传输的最大数据量-但我正在努力寻找合适的术语来描述相关事物:如果协议(protocol)是基于对话的——负载在端点之间被拆分成许多来回——那么延迟会影响“吞吐量”1。1这个叫什么,有没有简洁明了的解释? 最佳答案 网上冲浪,尝试优化我的nas(nas4free)的性能我遇到了page描述了这个问题的答案(恕我直言)。特别是这个部分引起了我的注意:"Indatatransmission,TCPsendsacertainamountofdatathenpauses.To

java - 适用于套接字流的C++/Java序列化库?

我需要用C++/Obj-C编写一个服务器,它可以从多个用Java和C++构建的客户端接收流数据。挑战:我需要高效地序列化和反序列化数据结构。一个C++客户端将生成128x96x2维float组,加上一些元数据,大约每秒30次(视频功能)。Java客户端将生成较小的特征向量——可能是200个值,每秒1-10次。我已经快要放弃我自己的实现了,但在我这样做之前,我想征求建议。 最佳答案 GoogleProtocolBuffers支持您所需的语言和序列化数据结构的流式传输,但我不确定您将如何最好地处理这些大型数组。有一些正在进行的工作her

http - 通过 TCP/IP 端口不断读取/写入数据。哪一个?

不幸的是我不太了解网络。我正在编写一个有两个版本的程序。服务器版本和客户端版本。假设客户端版本安装在20台通过以太网连接到服务器的PC上。客户端版本需要不断地从服务器获取一些数据。数据是串行的。我想知道一种方法来广播每秒更新的数据,并使网络中的所有其他PC都可以使用它。我可以为此使用HTTP端口吗?比如将数据写入HTML页面或其他内容?或者是否有更好的端口或方法来执行此操作?任何想法将不胜感激。 最佳答案 这听起来像是一个非常简单的TCP套接字应用程序。服务器将设置为“监听”特定端口(您选择端口号,比如12345),每个客户端将在该