0

帮我解答我的问题。我有一个客户代码

PARSE ARG NSTR
SERVER = ipaddress                                                  
SERVER_INFO = 'AF_INET 7500 ' !! SERVER                                  
STR = SOCKET('INITIALIZE',TIME('S'))                                     
PARSE VAR STR SOCKRC SUBTASKID MAXDES TCPIPUSER                          
STR = SOCKET('SOCKET', 'AF_INET', 'STREAM', 'TCP')                       
PARSE VAR STR SOCKRC SOCKID                                              
STR = SOCKET('SETSOCKOPT', SOCKID, 'SOL_SOCKET', 'SO_REUSEADDR', 'ON')   
STR = SOCKET('CONNECT', SOCKID, SERVER_INFO)                             
STR = SOCKET('SEND', SOCKID, NSTR)                                       
STR = SOCKET('CLOSE', SOCKID)                                            
STR = SOCKET('TERMINATE', SUBTASKID)                                     
EXIT    

我在 Rexx 中有几个脚本,它们为客户端 (nstr) 提供了一些字符串。一个脚本始终作为第一个运行,另一个作为第二个运行。脚本以最小的延迟快速运行。但是当我在服务器端收到这些字符串时,我发现它们有时是相反的顺序。为什么会这样?我应该在现有的 socketset 中使用 socketid 而不是 initilize new set 吗?

4

1 回答 1

1

您正在为您发送的每个字符串创建一个单独的套接字(也称为单独的 TCP 流)。TCP 没有就一个流上发送的数据与另一个流上发送的数据之间的关系做出任何承诺。它只承诺在单个流上发送的所有数据都按顺序到达并且完好无损。

于 2015-04-25T14:08:27.850 回答