私はこのコードを持っています。これは単純な WPF TcpListener アプリケーションです。以下のコードは正常に動作します。しかし、void Client() のコードを Button_Click() イベントに追加すると、機能しません!. この理由がわかりません。誰でも私に説明してもらえますか?.
このコードは正常に実行されます:
TcpClient client;
NetworkStream ns;
BinaryReader bRead;
BinaryWriter bWrite;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Task t = new Task(new Action(() =>
{
Server();
}));
t.Start();
Thread.Sleep(100);
Client();
}
public void Client()
{
client = new TcpClient(Dns.GetHostName(), 2055);
ns = client.GetStream();
bRead = new BinaryReader(ns);
bWrite = new BinaryWriter(ns);
bWrite.Write("entered");
bWrite.Flush();
bWrite.Write("entered");
bWrite.Flush();
}
public void Server()
{
TcpListener listener = new TcpListener(2055);
listener.Start();
TcpClient CL = listener.AcceptTcpClient();
NetworkStream ns = CL.GetStream();
BinaryReader bread = new BinaryReader(ns);
BinaryWriter bwrite = new BinaryWriter(ns);
while(true)
{
MessageBox.Show("waiting...");
string res = bread.ReadString();
MessageBox.Show(res);
}
}
このコードは、ボタン Button_click() をクリックしても応答しません。
TcpClient client;
NetworkStream ns;
BinaryReader bRead;
BinaryWriter bWrite;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Task t = new Task(new Action(() =>
{
Server();
}));
t.Start();
Thread.Sleep(100);
Client();
}
public void Client()
{
}
public void Server()
{
TcpListener listener = new TcpListener(2055);
listener.Start();
TcpClient CL = listener.AcceptTcpClient();
NetworkStream ns = CL.GetStream();
BinaryReader bread = new BinaryReader(ns);
BinaryWriter bwrite = new BinaryWriter(ns);
while(true)
{
MessageBox.Show("waiting...");
string res = bread.ReadString();
MessageBox.Show(res);
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
client = new TcpClient(Dns.GetHostName(), 2055);
ns = client.GetStream();
bRead = new BinaryReader(ns);
bWrite = new BinaryWriter(ns);
bWrite.Write("entered");
bWrite.Flush();
bWrite.Write("entered");
bWrite.Flush();
}