0
TCP接続をリッスンするwinformアプリケーションを作成しようとしていて、接続を受け取るとXを実行します。TcpListenerがWindowsフォームアプリケーションをクラッシュする
私が午前問題は、それがアプリを聞いて開始したときに「応答なし」
に入る。これは、私が使用しているコードであることである:、
try
{
// set the TcpListener on port 13000
int port = 13000;
TcpListener server = new TcpListener(IPAddress.Any, port);
// Start listening for client requests
server.Start();
//Enter the listening loop
while (true)
{
MessageBox.Show(@"Waiting for a connection... ");
server.AcceptTcpClient();
MessageBox.Show(@"Connected");
// ProcessStartInfo proc = new ProcessStartInfo();
// proc.WindowStyle = ProcessWindowStyle.Hidden;
// proc.FileName = "cmd";
// proc.Arguments = "/C shutdown -f -r";
// Process.Start(proc);
}
}
catch (SocketException)
{
MessageBox.Show(@"SocketException");
}
奇妙なことがあり、それはありますコンソールアプリケーションとしてうまく動作します。
私が間違っていることは何ですか?
accept()ブロックで見つけることができます。 GUIイベントハンドラでブロックすることはできません。それを取り除く。 – ThingyWotsit
フォームプロジェクトではwhileループは必要ありません。 whileループはブロックと呼ばれ、コンソールアプリケーションの終了を防ぎます。フォームプロジェクトには、コンストラクタにブロックが組み込まれており、コードにブロックを追加する必要はありません。 – jdweng
だから私はちょうど真実を削除することができます、そして、それは大丈夫に実行されますか? –