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) にいくつかの文字列を与えるスクリプトがいくつかあります。1 つのスクリプトは常に最初に実行され、別のスクリプトは 2 番目として実行されます。スクリプトは最小限の遅延で高速に実行されます。しかし、サーバー側でこれらの文字列を受信して​​いるとき、逆の順序になっていることがあります。なぜそれが起こっているのですか?新しいセットを初期化する代わりに、既存のソケットセットでソケット ID を使用する必要がありますか?

4

1 に答える 1

1

送信する文字列ごとに個別のソケット (別名、個別の TCP ストリーム) を作成しています。TCP は、あるストリームで送信されたデータが別のストリームで送信されたデータとどのように関連するかについて保証しません。単一のストリームで送信されたすべてのデータが順番どおりに無傷で到着することを約束するだけです。

于 2015-04-25T14:08:27.850 に答える