扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:crystal编译 来源:yesky 2007年11月14日
关键字:
private void menuConn_Click(object sender, System.EventArgs e) { ConnectDlg myDlg = new ConnectDlg(); myDlg.ShowDialog(this); if( myDlg.DialogResult==DialogResult.OK) { s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp ); IPAddress hostadd = IPAddress.Parse(myDlg.IpAdd); int port=Int32.Parse(myDlg.PortNum); IPEndPoint EPhost = new IPEndPoint(hostadd, port); Try { s.Connect(EPhost); if (s.Connected) { Byte[] bBuf; string buf; buf = String.Format("{0}:{1}", myDlg.UserName,myDlg.PassWord); bBuf=ASCII.GetBytes(buf); s.Send(bBuf, 0 , bBuf.Length,0); t = new Thread(new ThreadStart(StartRecieve)); t.Start(); sbar.Text="Ready to recieve data"; } } catch (Exception e1) { MessageBox.Show(e1.ToString()); } } } private void StartRecieve() { miv = new MethodInvoker(this.UpdateListView); int cnt=0; string tmp=null; Byte[] firstb= new Byte[1]; while (true) { try { Byte[] receive = new Byte[1]; int ret = s.Receive(receive, 1, 0); if (ret > 0) { switch(receive[0]) { case 11: //check start message cnt=0; break; case 10: // check end message cnt=0; if(firstb[0] == ':') HandleCommand(tmp); else if(firstb[0] == '<') HandleXml(tmp); else HandleText(tmp); tmp=null; break; default: if (cnt == 0) firstb[0] = receive[0]; tmp += System.Text.Encoding .ASCII.GetString(receive); cnt++; break; } } } catch (Exception e) { if( !s.Connected ) { break; } } } t.Abort(); } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者