![]() |
#2
何事惊慌2014-08-01 22:27
|
1.TCP异步通讯到底有什么作用???哪位大神能给我举个例子来说说不Orz
2.关于下面这段代码中WaitOne这个东西(阻止当前线程),这样写了以后那不是和TCP同步通讯是一样的效果了,都是要阻塞当前线程,那我干嘛还这么麻烦的写一个异步程序,直接写一个同步的多好啊。(这个程序是一本书上的TCP异步的例子)

private void but_connect_Click(object sender, EventArgs e)
{
try
{
client = new TcpClient(AddressFamily.InterNetwork);
IPAddress ipadd = IPAddress.Parse(txt_hostname.Text.ToString());
AsyncCallback requestCallBack = new AsyncCallback(RequestCallBack);
allDone.Reset();
client.BeginConnect(ipadd, 3000, requestCallBack, client);
//public object Invoke(Delegate method, params object[] args);调用callback
lb_state.Invoke(setlistboxcallback, string.Format("本机终结点:{0}", client.Client.LocalEndPoint));
lb_state.Invoke(setlistboxcallback, "开始与服务器连接...");
allDone.WaitOne();
}
catch (Exception ee)
{
lb_state.Invoke(setlistboxcallback, string.Format("错误:{0}", ee.Message));
}
finally
{
}
}
{
try
{
client = new TcpClient(AddressFamily.InterNetwork);
IPAddress ipadd = IPAddress.Parse(txt_hostname.Text.ToString());
AsyncCallback requestCallBack = new AsyncCallback(RequestCallBack);
allDone.Reset();
client.BeginConnect(ipadd, 3000, requestCallBack, client);
//public object Invoke(Delegate method, params object[] args);调用callback
lb_state.Invoke(setlistboxcallback, string.Format("本机终结点:{0}", client.Client.LocalEndPoint));
lb_state.Invoke(setlistboxcallback, "开始与服务器连接...");
allDone.WaitOne();
}
catch (Exception ee)
{
lb_state.Invoke(setlistboxcallback, string.Format("错误:{0}", ee.Message));
}
finally
{
}
}
3.解决TCP异步这个问题,直接开启多线程不就好了吗,干嘛还要弄异步这个东西,多麻烦啊??