0

サーバーに送信しようとしている多数のメッセージを保持するリストがあります。これは私のコードです:

    private void sendBtn_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < listORequestedCommands.Items.Count; i++)
        {
            clientSock.Send(Encoding.Default.GetBytes(listORequestedCommands.Items[i].ToString()));
        }
        removeAll_Click(sender, e);
        sendBtn.Enabled = false;
    }

ただし、送信ボタンをクリックすると、サーバーは、メッセージを分離して受信するのではなく、連結されたすべてのリスト項目を含む 1 つのメッセージを受信することがわかります。

何か案は?

4

2 に答える 2

1

プロトコルを実装します。TCP ソケットは、メッセージ ベースではなく、ストリーム ベースです。

于 2013-01-31T09:59:51.047 に答える
0

承認を待つ必要があります。待機していないため、バイトが収集され、統合された結果として表示されます。データをソケットに送信した後、次のようなコードを使用する必要があります

int bytesRec = clientSock.Receive(bytes);

次の URL http://msdn.microsoft.com/en-us/library/bew39x2a.aspx

于 2013-01-31T10:08:45.947 に答える