サーバー接続のエラー

I’m now trying to work with server. I have this code: enter image description here

私は ‘ParametrizedThreadStart’スレッドで ‘HandleCC’メソッドを開始しています。私は
‘127.0.0.1’で接続しようとしています。私は接続することができます。私が接続しているときは、第1のブレークポイントは良いですが、第2のコードも停止します。
(コンソールはまだ実行されていますが、次のブレークポイントの誰もコードを壊していません)。
喜んで私を助け、私の英語のために残念。

フルコード:

using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Linq;
using System.Collections.Generic;
using System.Collections;
using System.Threading;
namespace MTSP
{
class Comunication
{
    private TcpListener listener;
    private Thread thread;
    public Comunication()
    {
        this.listener = new TcpListener(IPAddress.Any, 20345);
        this.thread = new Thread(new ThreadStart(this.ListenLoop));
        this.thread.Start();
    }
    private void ListenLoop()
    {
        this.listener.Start();
        while (true)
        {
            TcpClient client = this.listener.AcceptTcpClient();
            Thread tr = new Thread(new ParameterizedThreadStart(this.HandleCC));
            tr.Start(client);
        }
    }
    private void HandleCC(object client)
    {
        TcpClient cli = (TcpClient)client;
        NetworkStream stream = cli.GetStream();
        byte[] buffer = new byte[1024];
        int bytesread = 0;
        string mess = "";
        StringBuilder compmess = new StringBuilder();
        while (true)
        {
            bytesread = 0;
            try
            {
                bytesread = stream.Read(buffer, 0, buffer.Length);
            }
            catch
            {
                break;
            }

            compmess.AppendFormat("{0}", Encoding.ASCII.GetString(buffer, 0, bytesread));
            string a = compmess.ToString();
            string g;
        }
        System.Diagnostics.Debug.WriteLine(compmess.ToString());
        cli.Close();
    }
}
}
ベストアンサー

任意のクライアントサーバーアプリケーションでは、クライアントとサーバーの両方が必要です。あなたはサーバーを書きました。
次に、クライアントの例を示します(これはテスト済みであり、コードをサーバーとして使用しています)。

    TcpClient client = new TcpClient("localhost", 20345);
    NetworkStream stream = client.GetStream();

    while (true)
    {
        string message = Console.ReadLine();
        Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);  
       //Send the message to the connected TcpServer. 
        stream.Write(data, 0, data.Length);
    }

    stream.Close();
    client.Close();

このクライアントを別のコンソールアプリケーションに入れ、次に:

  • サーバーを起動する
  • 新しいVisual Studioインスタンスでクライアントを起動するか、exeを開始します
  • クライアントコンソールウィンドウに何かを入力してください
  • 次に、使用している StringBuilder を更新するステップを実行します。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です