通过TCP套接字客户端服务器应用程序发送/接收性能数据



我正在开发一个系统,用于通过TCP使用套接字在客户端和服务器应用程序之间交换数据。

服务器是很久以前用C++编写的(由第三部分编写),而客户端是我仍在C#中开发的应用程序。基地已经完工。两个应用程序都正常通信。问题是数据交换(在我看来)太慢了。

在我看来,我强调,因为我不知道通过TCP使用套接字实际会带来什么。目前,经过几次测试,在接收和发送方面,通信速度平均为每秒200/250KB。

有一些应用程序允许您评估特定端口上两个端点之间的数据交换速度我应该期望什么速度

更具体地说,客户端和服务器是为文件共享而开发的。目前,客户端一次可以接收和发送一个文件。协议会做其他事情(一次接收/发送多个文件),但出于安全原因,我更喜欢其他方式(如果你接收到多个文件,并且失去了连接,你将失去所有接收到的文件)。

更改此功能是否会显著影响数据交换的速度?以什么方式

首先,您必须知道主机提供的链接的带宽,才能知道会发生什么。如果你自己托管,你的上传速度可能比下载速度链接慢得多。您可以登录到服务器并运行速度测试。

我遇到了类似于你的情况(开发了一个服务器和一个客户端来向它发送二进制数据),到那时(2-3年前),我使用了这个工具的一个版本来测量数据交换的速度。您可以将其安装在服务器上,设置监视器(您想要观看的端口等),配置图表并让它运行一段时间。它运行得非常好。您可以查找其他类似的工具来搜索"带宽流量监视器"。

如果您允许您的应用程序同时交换多个文件,请记住,您的链接速度将在连接之间分配,并且根据有多少客户端在使用应用程序,服务器将进行的多个连接和文件写入可能会受到其处理能力以及带宽的限制。

我应该期望什么速度?

两个节点之间网络中最慢部分可以传输的全速,减去该最慢部分上现有流量的带宽。在100Mbit局域网上,我预计单向传输速度为10MB/s。

更改此功能是否会显著影响数据交换的速度?以什么方式?

这完全取决于所使用的协议以及客户端和服务器的实现。你必须对艰苦的工作在哪里完成,你的瓶颈在哪里进行基准测试

最新更新