前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Visual C#.Net网络程序开发-Tcp篇(3) 祥细内容:

Visual C#.Net网络程序开发-Tcp篇(3) 祥细内容:

作者头像
脑洞的蜂蜜
发布2018-02-02 15:14:30
6700
发布2018-02-02 15:14:30
举报
文章被收录于专栏:NetCoreNetCore

综合运用上面的知识,下面的实例实现了简单的网络通讯-双机互连,针对客户端和服务端分别编制了应用程序。客户端创建到服务端的连接,向远程主机发送连接请求连接信号,并发送交谈内容;远程主机端接收来自客户的连接,向客户端发回确认连接的信号,同时接收并显示客户端的交谈内容。在这个基础上,发挥你的创造力,你完全可以开发出一个基于程序语言(C#)级的聊天室!

  客户端主要源代码:

代码语言:js
复制
   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="";//清空
   } 

  服务器端主要源代码:

代码语言:js
复制
   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();
  }
  } 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2005-08-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档