Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java套接字传输大量数据_Java_Sockets - Fatal编程技术网

使用java套接字传输大量数据

使用java套接字传输大量数据,java,sockets,Java,Sockets,我们使用Java nio AsynchronousServerSocketChannel和完成处理程序来写入套接字通道 套接字用于在同一系统中运行的两个进程之间进行本地通信 我们倾向于传输相当大的数据。我们使用缓冲区大小16384以分块方式传输数据。通过UDP发送不是一个选项 是否可以采取其他措施来提高套接字通道的性能或减少传输的有效负载 致以最良好的祝愿, 你可以考虑一些替代方案。我希望您需要实现每一个,并使用应用程序在硬件上测试实际性能,以便选择正确的应用程序 您可以尝试调整当前的方法。一些

我们使用Java nio AsynchronousServerSocketChannel和完成处理程序来写入套接字通道

套接字用于在同一系统中运行的两个进程之间进行本地通信

我们倾向于传输相当大的数据。我们使用缓冲区大小16384以分块方式传输数据。通过UDP发送不是一个选项

是否可以采取其他措施来提高套接字通道的性能或减少传输的有效负载

致以最良好的祝愿,
你可以考虑一些替代方案。我希望您需要实现每一个,并使用应用程序在硬件上测试实际性能,以便选择正确的应用程序

  • 您可以尝试调整当前的方法。一些想法:更大的缓冲区,双缓冲区(使用两个套接字,这样写程序总是有一个可供写的套接字,而读程序总是可以读取),只发送差异(如果您不断发送和更新数据版本),压缩,等等
  • 使用完全不同的方法,例如共享内存或内存映射文件。一些问题和很多好的答案可能会让你开始:和

  • 虽然细节取决于特定的环境,但您可能会加速与当前的套接字实现之间的通信量增加10倍(或者可能大大增加)。我希望您需要实现每一个,并使用应用程序在硬件上测试实际性能,以便选择正确的应用程序

  • 您可以尝试调整当前的方法。一些想法:更大的缓冲区,双缓冲区(使用两个套接字,这样写程序总是有一个可供写的套接字,而读程序总是可以读取),只发送差异(如果您不断发送和更新数据版本),压缩,等等
  • 使用完全不同的方法,例如共享内存或内存映射文件。一些问题和很多好的答案可能会让你开始:和

  • 虽然细节取决于您的特定环境,但您可能可以将通信速度提高10倍(或更高)。

    您可以压缩它。它会减少大小(显然),但我不确定整体性能。你可以使用一些压缩技术使用大得多的缓冲区,而不是以分块的方式传输。让TCP以任何方式对其进行流式传输。使用大型套接字发送和接收缓冲区。不要试图去想TCP。你不会的,你可以拉上拉链。它会减少大小(显然),但我不确定整体性能。你可以使用一些压缩技术使用大得多的缓冲区,而不是以分块的方式传输。让TCP以任何方式对其进行流式传输。使用大型套接字发送和接收缓冲区。不要试图去想TCP。你不会的。谢谢Rob的回答…我喜欢内存映射文件概念…但是java API支持非持久内存映射文件吗..我在这里问了这个问题谢谢Rob的回答…我喜欢内存映射文件概念…但是java API支持非持久内存映射文件吗..我在这里问了这个问题