私はボタン1とフォームと、このコードサーバtcpを起動すると、フォームが消えるのはなぜですか?
private void button1_Click(object sender, EventArgs e)
{
ServerTCP s = new ServerTCP();
}
そしてクラスserverTCP
public ServerTCP()
{
TcpListener listen = new TcpListener(IPAddress.Any, 1200);
Console.WriteLine("Waiting");
listen.Start();
while (true)
{
TcpClient client = listen.AcceptTcpClient();
Console.WriteLine("Client connected");
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[client.ReceiveBufferSize];
int data = stream.Read(buffer, 0, client.ReceiveBufferSize);
string message = Encoding.Unicode.GetString(buffer, 0, data);
int idgiorno = Int32.Parse(message);
Console.WriteLine("idgiorno: " + idgiorno);
client.Close();
}
}
を持っている問題は、私はボタン1をクリックした後、フォームが消えるということです。スタートバーからまだ実行中であることがわかりますが、アイコンをクリックしても表示されません。フォームがフォーカスを失うようなものです。
あなたのプログラムのメインスレッドで連続ループを実行しているため、クラッシュしてしまい、そのプログラムを使用できなくなったようです。 – ThePerplexedOne
プログラムは、クライアントからの入力を待機し続けるサーバーです。アプリケーションを閉じる別のボタンがあるはずですので、フォームに焦点を当てる必要があります – Alessandro
次に、メインのスレッドとは別のスレッドでコードを実行します。スレッドの詳細については、[こちら](https://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx)を参照してください。 – ThePerplexedOne