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

标签 objective-c sockets networking tcp asyncsocket

我使用 TCP AsyncSocket 通过本地连接(使用主机作为本地 IP 地址)将大文件从一台计算机传输到另一台计算机。

首先,我设置了单个 TCP 套接字连接,感觉数据传输速率很慢。大约 1mb/秒。

为了加快速度,我创建了 10 个 TCP 套接字(在不同线程上的不同端口上连接)并开始同时读取文件分区。但这没有任何区别。传输速率几乎与单个 TCP 套接字连接相同(甚至更慢)。

有什么想法吗?为什么多个 TCP 套接字不能并行传输数据?有什么方法或建议可以通过 TCP 快速传输文件?

最佳答案

并行化 I/O 操作仅在 I/O channel 未饱和且任务为单核限制时才有帮助。

很可能,添加额外的 I/O channel 实际上会减慢速度,因为现在有多个客户端争夺稀缺资源。

您需要弄清楚的是您的瓶颈在哪里?只有在量化了性能问题的实际原因后,您才能解决它。

关于objective-c - 并行 TCP 连接的数据传输速度较慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40006422/

相关文章:

objective-c - 使用 fadeIn/fadeOut CABasicAnimation 的闪烁效果

iphone - 设计 : Passing on class instances or using singletons?

java.net.UnknownHostException 无法创建套接字。 java

c - 带数据的 ICMP 请求

java - ReadLine 不等待输入

linux - 如何通过Python脚本连接到同一网络但不同IP地址的远程Linux服务器

java - 区分同一台计算机上的多个客户端

iphone - 将换行符附加到 NSString

c++ - 如何访问RTCVideoRenderer的帧? (ios)

c++ - 灵活的设计来替换 switch 语句