gpt4 book ai didi

java套接字编程: message delivery order

转载 作者:行者123 更新时间:2023-11-30 04:37:38 26 4
gpt4 key购买 nike

我对任何类型的网络编程都是新手。请您回答以下问题。

我正在使用 Java。

场景

主题 1:

Socket s = new Socket("remote machine", portNum);
//get the outputstream and write **"Message 1"**, close it.

主题 2:

Socket s = new Socket("remote machine", portNum);    
//get the outputstream and write **"Message 2"**, close it.

可以肯定的是,线程 1 在线程 2 之前打开套接字并将消息发送到远程计算机。

是否保证“远程机器”以相同的顺序读取它们,即读取消息1,然后读取消息2

注意:顺序是有保证的,因为线程 1 在发送消息 1 后,向线程 2 发送了继续进行的批准。

最佳答案

尝试将网络想象成某种东西

a) 异步b) 不可靠c) 无法控制

所以,当你发送一些东西时,事情会在不可控的情况下并行发生。当您向远程计算机发送某些内容时,甚至不能保证数据(初始数据和数据 - 请参阅 TCP)通过相同的路径传输。

TCP 可以很好地管理单个连接的顺序传输,但不能很好地管理两个连接的顺序传输。如果您使用/需要两个相同的服务器/端口,您通常会这样做,因为您希望它们是独立的。您正在使用 Java 进行编程,尝试在单个 tcp-socket-connection 上同步/调度以保证交付顺序,并使用多个并行运行。

关于java套接字编程: message delivery order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13073603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com