C# TCP クライアントはメッセージを送信しますが、サーバーはメッセージを受信していません

ジャムナート・ハンガ

これはエラーです:

**

例外がスローされました: System.Windows.Forms.dll の 'System.InvalidOperationException' 追加情報: クロススレッド操作が無効です: コントロール 'displayText' は、作成されたスレッド以外のスレッドからアクセスされます。

**

C# を使用して、マルチ スレッドのクライアントおよびサーバー アプリケーションを作成しました。このエラーについて調査しましたが、関連する答えが見つかりませんでした。プログラムで複数のスレッドが開始されたときにこれが発生することは知っています...しかし、私のサーバー側には1つのスレッドがあります...なぜこれが発生するのかわかりません..........

これが私のサーバー側です。

        private void Handler()
        {
            try {


                byte[] b = new byte[100];
                int k = s.Read(b, 0, b.Length);

                //int k = s.Receive(b);



                string szReceived = Encoding.ASCII.GetString(b,0,k);
                //If the data to be converted is available only in sequential blocks (such as data read from a stream) or if the amount of data is so large that it needs to be divided into smaller blocks,


                while (ServerRunning)
                {
                    string ConcatString = "";
                    for (int i = 0; i < k; i++)
                    {

                        char n = Convert.ToChar(b[i]);
                        string chars = Convert.ToString(n);
                        ConcatString = ConcatString + chars;

                    }

                    if (b[0] == '$')
                    {
                        displayText.AppendText("\nPrivate Message");
                        //MessageBox.Show("\nPrivate Message" + Environment.NewLine);
                    }
                    else
                    {
                        displayText.AppendText("\n" + ConcatString);
                        //MessageBox.Show(ConcatString + Environment.NewLine);
                    }

                    //Encoding is the process of transforming a set of Unicode characters into a sequence of bytes and using new instance
                    ASCIIEncoding asen = new ASCIIEncoding();

                    //s.Send(asen.GetBytes("The string was recieved by the server." + Environment.NewLine));

                    displayText.AppendText("\n" + ConcatString);
                    /* clean up */
                    //*
                   // k = s.Receive(b);
                    s.Close();
                    client.Close();
                    //MessageBox.Show("Recieved..." + Environment.NewLine);


                }
            }
            catch(Exception ex)
            {
                MessageBox.Show("Error ...." + ex);
            }
        }

私はソケット プログラミングは初めてですが、すべてのコード セグメントを調査し、コードを数回実験しました.

それで、これを解決するために私を助けてください...私は非常に感謝します...ありがとう..

マルク・グラヴェル
Invoke((MethodInvoker) delegate { displayText.AppendText("\n" + ConcatString); });

それを修正する必要があります。これは、「UI に追加」コードを UI スレッドにディスパッチし、完了するのを待ちます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

C#TCPサーバーは、Pythonクライアントから送信された2つのメッセージを同時に受信します

分類Dev

TCPクライアント(java)がTCPサーバー(C#)からメッセージを受信しませんでした

分類Dev

CのTCPクライアントからメッセージを受信できませんでした

分類Dev

C#TCPサーバーとC ++ TCPクライアントでメッセージを受信できません

分類Dev

C ++サーバーTCPを使用してAndroidクライアントにメッセージを送信する

分類Dev

TCP クライアントがサーバーのメッセージを受信しません

分類Dev

Simple Rust TCP サーバーとクライアントはメッセージを受信せず、終了しません

分類Dev

春の統合tcpサーバーはtcpクライアントにメッセージを送信します

分類Dev

TCPサーバーがTCPクライアントからメッセージを受信しない(Java)

分類Dev

C#のさまざまな機能からアクティブなtcpクライアントにメッセージを送信します

分類Dev

C ++ソケットサーバーはJavaクライアントからメッセージを受信しますが、それ以外の場合は受信しません

分類Dev

C#クライアントからサーバーへのデータ転送サーバーは以前のクライアントメッセージを受信しています非同期サーバー-非同期クライアント

分類Dev

サーバーはCのソケットを介してクライアントにメッセージを送信できません

分類Dev

TCPクライアントがすべてのメッセージを受信していない

分類Dev

TCPクライアント-不明/無制限のサイズからメッセージを受信します

分類Dev

C#非同期ソケットサーバーはクライアントから1つのメッセージのみを受信します

分類Dev

TCPクライアントでサーバーからメッセージを受信し、TextViewで設定します

分類Dev

Java-TCP / IP-サーバーはクライアントにメッセージを返信できませんか?

分類Dev

TCP IP recv()関数がサーバーからエコーされたメッセージを受信していません

分類Dev

Spring統合TCPサーバーがメッセージを受信しない

分類Dev

Node.jsからc ++クライアントへ:socket.emitからメッセージを受信していません

分類Dev

TCP c#を使用して、サーバーから特定のクライアントにパケットを送信します

分類Dev

TCPクライアント/サーバーメッセージが正しく送信されない

分類Dev

C ++のWebSocketクライアントとしてサーバーにメッセージを送信するにはどうすればよいですか?

分類Dev

TCPサーバーが破損したメッセージを受信するのはなぜですか?

分類Dev

AndroidAsyncTaskが実行されていません-TCPサーバーにメッセージを送信しようとしています

分類Dev

C ++、TCPソケットはデータを受信できません

分類Dev

C mqueueは、メッセージ全体を送受信しません

分類Dev

C ++クライアントソケットはメッセージの最初の文字のみを受信します

Related 関連記事

  1. 1

    C#TCPサーバーは、Pythonクライアントから送信された2つのメッセージを同時に受信します

  2. 2

    TCPクライアント(java)がTCPサーバー(C#)からメッセージを受信しませんでした

  3. 3

    CのTCPクライアントからメッセージを受信できませんでした

  4. 4

    C#TCPサーバーとC ++ TCPクライアントでメッセージを受信できません

  5. 5

    C ++サーバーTCPを使用してAndroidクライアントにメッセージを送信する

  6. 6

    TCP クライアントがサーバーのメッセージを受信しません

  7. 7

    Simple Rust TCP サーバーとクライアントはメッセージを受信せず、終了しません

  8. 8

    春の統合tcpサーバーはtcpクライアントにメッセージを送信します

  9. 9

    TCPサーバーがTCPクライアントからメッセージを受信しない(Java)

  10. 10

    C#のさまざまな機能からアクティブなtcpクライアントにメッセージを送信します

  11. 11

    C ++ソケットサーバーはJavaクライアントからメッセージを受信しますが、それ以外の場合は受信しません

  12. 12

    C#クライアントからサーバーへのデータ転送サーバーは以前のクライアントメッセージを受信しています非同期サーバー-非同期クライアント

  13. 13

    サーバーはCのソケットを介してクライアントにメッセージを送信できません

  14. 14

    TCPクライアントがすべてのメッセージを受信していない

  15. 15

    TCPクライアント-不明/無制限のサイズからメッセージを受信します

  16. 16

    C#非同期ソケットサーバーはクライアントから1つのメッセージのみを受信します

  17. 17

    TCPクライアントでサーバーからメッセージを受信し、TextViewで設定します

  18. 18

    Java-TCP / IP-サーバーはクライアントにメッセージを返信できませんか?

  19. 19

    TCP IP recv()関数がサーバーからエコーされたメッセージを受信していません

  20. 20

    Spring統合TCPサーバーがメッセージを受信しない

  21. 21

    Node.jsからc ++クライアントへ:socket.emitからメッセージを受信していません

  22. 22

    TCP c#を使用して、サーバーから特定のクライアントにパケットを送信します

  23. 23

    TCPクライアント/サーバーメッセージが正しく送信されない

  24. 24

    C ++のWebSocketクライアントとしてサーバーにメッセージを送信するにはどうすればよいですか?

  25. 25

    TCPサーバーが破損したメッセージを受信するのはなぜですか?

  26. 26

    AndroidAsyncTaskが実行されていません-TCPサーバーにメッセージを送信しようとしています

  27. 27

    C ++、TCPソケットはデータを受信できません

  28. 28

    C mqueueは、メッセージ全体を送受信しません

  29. 29

    C ++クライアントソケットはメッセージの最初の文字のみを受信します

ホットタグ

アーカイブ