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

简介: 综合运用上面的知识,下面的实例实现了简单的网络通讯-双机互连,针对客户端和服务端分别编制了应用程序。客户端创建到服务端的连接,向远程主机发送连接请求连接信号,并发送交谈内容;远程主机端接收来自客户的连接,向客户端发回确认连接的信号,同时接收并显示客户端的交谈内容。
综合运用上面的知识,下面的实例实现了简单的网络通讯-双机互连,针对客户端和服务端分别编制了应用程序。客户端创建到服务端的连接,向远程主机发送连接请求连接信号,并发送交谈内容;远程主机端接收来自客户的连接,向客户端发回确认连接的信号,同时接收并显示客户端的交谈内容。在这个基础上,发挥你的创造力,你完全可以开发出一个基于程序语言(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();
  }
  }
相关文章
|
26天前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
7天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
47 13
|
15天前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
37 3
|
29天前
|
Java 物联网 编译器
C#一分钟浅谈:.NET Core 与 .NET 5 区别
本文对比了 .NET Core 和 .NET 5,从历史背景、主要区别、常见问题及易错点等方面进行了详细分析。.NET Core 侧重跨平台支持和高性能,而 .NET 5 在此基础上统一了 .NET 生态系统,增加了更多新特性和优化。开发者可根据具体需求选择合适的版本。
45 7
|
26天前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
|
26天前
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
|
1月前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
2月前
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
60 10
|
15天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
15天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。