关于 TCP 异步通讯问题
关于TCP异步通讯中,我一直有几个问题没搞明白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 { } }
3.解决TCP异步这个问题,直接开启多线程不就好了吗,干嘛还要弄异步这个东西,多麻烦啊??