改进Windows中的Socket性能

Improving Socket Performance in Windows

本文关键字:性能 Socket 中的 Windows 改进      更新时间:2023-10-16

我对网络通信方法很陌生。我刚刚开发了一个非常简单的服务器/客户端连接,使用微软网站中描述的过程:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms737889 (v = vs.85) . aspx

我使用套接字在FORTRAN程序(客户端)和c++程序(服务器)之间传输大量数据(双数字)。(在FORTRAN中,"USE IFWIN"提供了大多数windows编程函数,包括定义clientsocket的函数)

我想提高传输数据的性能。您认为使用任何库(如boost)可以提高处理大量数据的性能吗?Microsoft过程和使用boost之类的库之间究竟有什么区别?

欢迎评论

我认为首先您应该确定网络性能是否对您的应用程序有问题。

在您控制通信两端的网络中,提高批量数据吞吐量的最简单方法是压缩它。为此,我推荐使用zlib。我不确定FORTRAN中有哪些可用的api/绑定,但最坏的情况是,您可以使用任何众所周知的、公开可用的算法(霍夫曼编码等)自己实现压缩。

您也可以尝试以块的形式发送数据。因此,当您读取下一个数据块时,您将能够处理前一个数据块。

[Chunk-size;Chunk-Data] [Chunk-size;Chunk-Data]…