3

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

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

我强调我的观点是因为我不知道通过 TCP 使用套接字实际上可以期待什么。目前,目测,经过多次测试,接收和发送的通信速度平均为每秒 200/250 KB。

是否有应用程序可以让您评估特定端口上两个端点之间的数据交换速度?我应该期待什么速度?

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

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

4

2 回答 2

1

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

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

如果您允许您的应用程序同时交换多个文件,请记住您的链接速度将在连接之间进行划分,并且取决于有多少客户端正在使用您的应用程序,您的服务器将执行多个连接和文件写入除了带宽之外,它还可能受到其处理能力的限制。

于 2012-11-28T15:21:35.973 回答
0

我应该期待什么速度?

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

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

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

于 2012-11-28T15:38:52.757 回答