2

この関数を使用してクライアントにデータを送信しようとしました

protected void SendData(Socket so, string sendData)
{
    byte[] data = Encoding.ASCII.GetBytes(sendData);
    so.Send(data);

    Console.WriteLine("Sending data back to Client\n");
}

この関数でこの関数を呼び出します

protected void ProcessData(int x, string data, Socket so)
{
    if (x < mybuffersize)
    {
        data = data.Trim();
        SendData(so, data);
    }
}

サーバーがクライアントから受信したデータを送信します。しかし、これに変更すると、

protected void ProcessData(int x, string data, Socket so)
{
    if (x < mybuffersize)
    {
        data = data.Trim();
        SendData(so, data);
        string sendData = "Testing send string";
        SendData(so, sendData);
    }
}

クライアントは、彼が私に送信したデータのみを受信しますが、 string は受信しませんTesting send string。何か間違ったことをしているのですか、それとも何か制限がありますか?

4

3 に答える 3

0

サーバーが何をするのか、データを取得する方法がわからないので、これを試して、サーバーが何を取得するかを確認してください。

protected void ProcessData(int x, string data, Socket so)   
{
    if (x < mybuffersize)
    {
        string sendData = "Testing send string\0";
        SendData(so, sendData);
        data = data.Trim();
        SendData(so, data);
    } 
}
于 2013-04-29T11:34:04.470 に答える
0

問題はデータの送信にあることがわかりましたが、

次のようなものを追加すると、クライアント(フラッシュ)が文字列を受け取るようです:

protected void ProcessData(int x, string data, Socket so)
{
    if (x < mybuffersize)
    {
        data = data.Trim();
        SendData(so, data);
        string sendData = "Testing send string\0";
        SendData(so, sendData);
    }
}

誰かが理由を説明できる場合は、この回答のコメントに追加してください、thx

于 2013-04-29T09:04:11.487 に答える