Visual C#.Net網絡程序開發-Tcp篇(3)

Visual C#.Net網絡程序開發-Tcp篇(3)
作者: 宋華   www.ASPCool.com 時間:2002-5-5 17:48:38  閱讀次數:6526

     綜合運用上面的知識,下面的實例實現了簡單的網絡通訊-雙機互連,針對客戶端和服務端分別編制了應用程序。客戶端創建到服務端的連接,向遠程主機發送連接請求連接信號,併發送交談內容;遠程主機端接收來自客戶的連接,向客戶端發回確認連接的信號,同時接收並顯示客戶端的交談內容。在這個基礎上,發揮你的創造力,你完全可以開發出一個基於程序語言(C#)級的聊天室!
  
  客戶端主要源代碼:
  
   public void SendMeg()//發送信息
   {
  try
  {
  
  
  int port=Int32.Parse(textBox3.Text.ToString());//遠程主機端口
   try
   {
   tcpClient=new TcpClient(textBox1.Text,port);//創建TcpClient對象實例 }
   catch(Exception le)
   {
   MessageBox.Show("TcpClient Error:"+le.Message);
   }
  string strDateLine=DateTime.Now.ToShortDateString()+" "+DateTime.Now.ToLongTimeString();//得到發送時客戶端時間
   netStream=tcpClient.GetStream();//得到網絡流
   sw=new StreamWriter(netStream);//創建TextWriter,向流中寫字符
   string words=textBox4.Text;//待發送的話
   string content=strDateLine+words;//待發送內容
   sw.Write(content);//寫入流
   sw.Close();//關閉流寫入器
   netStream.Close();//關閉網絡流
   tcpClient.Close();//關閉客戶端連接
  }
  catch(Exception ex)
   {
   MessageBox.Show("Sending Message Failed!"+ex.Message);
   }
   textBox4.Text="";//清空
   }
  
  
  服務器端主要源代碼:
  
   public void StartListen()//偵聽特定端口的用戶請求
   {
  //ReceiveMeg();
  isLinked=false; //連接標誌
   try
   {
   int port=Int32.Parse(textBox1.Text.ToString());//本地待偵聽端口
   serverListener=new TcpListener(port);//創建TcpListener對象實例
   serverListener.Start(); //啓動偵聽
   }
   catch(Exception ex)
   {
   MessageBox.Show("Can't Start Server"+ex.Message);
   return;
   }
   isLinked=true;
   while(true)//進入無限循環等待用戶端連接
   {
   try
   {
   tcpClient=serverListener.AcceptTcpClient();//創建客戶端連接對象
   netStream=tcpClient.GetStream();//得到網絡流
   sr=new StreamReader(netStream);//流讀寫器
   }
   catch(Exception re)
   {
   MessageBox.Show(re.Message);
   }
   string buffer="";
  string received="";
   received+=sr.ReadLine();//讀流中一行
   while(received.Length!=0)
   {
   buffer+=received;
   buffer+="/r/n";
   //received="";
   received=sr.ReadLine();
   }
  listBox1.Items.Add(buffer);//顯示
  //關閉
  sr.Close();
  netStream.Close();
  tcpClient.Close();
  }
  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章