科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件C#实时申请技术

C#实时申请技术

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文演示在用户申请与服务器申请之间使用Socket类的情况。

作者:crystal编译 来源:yesky 2007年11月14日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
2. TcpClient与TcpSrv连接上后,发送客户端信息数据包至TcpServer,然后发射线程,该线程是用来接收通过Socket传来的数据。

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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章