MyIM2006开发报告2:Tcp连接

启动侦听

这是一个线程方法:

try           

{

       //创建TcpListener对象实例

    serverListener = new TcpListener(  Dns.GetHostByName( Dns.GetHostName() ).AddressList[ 0 ], MyPort );

       serverListener.Start(); //启动侦听

}      

catch(Exception ex)      

{

       MessageBox.Show("不能启动侦听服务!"+ex.Message,"提示:",

                     MessageBoxButtons.OK,MessageBoxIcon.Warning);

       return;

}

 

接收信息

同样是一个线程方法:

if( serverListener.Pending() == true )

{

     // 1. 取得客户端Tcp连接对象

     try      

     {          

          tpc = serverListener.AcceptTcpClient( );//侦听到连接后创建客户端连接对象

          netStream = tpc.GetStream();//得到网络流 NetworkSream

          sr = new StreamReader( netStream );//流读写器: StreamReader

     }      

     catch( Exception re )     

     {

          MessageBox.Show("接受连接失败!/n"+re.Message+"/n请重新”启动“系统。","提示:",MessageBoxButtons.OK,MessageBoxIcon.Warning);

          sr.Close();

          netStream.Close();

          tpc.Close();

          return;

     }

 

     // 2. 解析接收到的信息

     try

     {

          string received = Empty;

          string receivedStr = Empty;

          //读流中的一行

         

          while( ( received = sr.ReadLine( ) ) != null )      

          {     

               receivedStr += received;

          }

          if( receivedStr != Empty )//不是空消息

          {

              // 处理接收到的信息

          }

     }

     catch( Exception re )     

     {

          MessageBox.Show("读取消息有错误!/n"+re.Message,"提示:",MessageBoxButtons.OK,MessageBoxIcon.Warning);

     }

     finally

     {

          //其他处理

     }

}

 

发送信息

// 1. 连接目标机

TcpClient tempTpc;    

try                           

{

     tempTpc = new TcpClient( HostName, Port  ); //创建连接

}           

catch( Exception le )           

{

     return "失败" + le.Message;

}

 

// 2. 给目标机发送消息

try           

{

     netStream = tempTpc.GetStream();//得到网络流

     sw = new StreamWriter( netStream );//创建TextWriter,向流中写字符

     sw.Write( Content );//写入流

     sw.Close( ); //关闭流写入器

     netStream.Close( );//关闭网络流

     tempTpc.Close( );//关闭客户端连接,释放资源

}

catch( Exception ex ) 

{

     return "发送失败! (" + ex.Message + ")";

}

 

// 3. 返回发送成功标志

return "成功"; 

 

判断是否可以连接某个IP

TcpClient tempTpc = new TcpClient( ); 

try    

{

       tempTpc.ReceiveTimeout = 1000;

       tempTpc.Connect( HostName, Port );

 

       tempTpc.Close();

       return true;

}             

catch             

{

       return false;

}

 

 

 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值