C#简易Socket与TcpClient通信示例:聊天程序实现

需积分: 10 3 下载量 154 浏览量 更新于2024-09-13 收藏 5KB TXT 举报
本篇文章主要介绍了如何在C#中实现一个简单的客户端与服务端通讯程序,通过两种不同的网络通信方式:Socket和TcpClient/TcpListener。首先,我们来看一下如何使用Socket进行通信。 在客户端部分,代码展示了如何创建一个TcpClient实例,并连接到指定的IP地址和端口(这里是19808)。然后,通过获取`NetworkStream`和`StreamWriter`,向服务器发送消息。发送完成后,关闭流和TcpClient对象,最后将接收到的消息添加到richTextBox中显示。 ```csharp TcpClient TcpClient = new TcpClient(this.IP.Text, 19808); NetworkStream tcpStream = TcpClient.GetStream(); StreamWriter stream = new StreamWriter(tcpStream); stream.Flush(); stream.Write(Message); stream.Close(); TcpClient.Close(); this.richTextBox2.AppendText(Message + "\n"); ``` 在服务端,`StartListen`方法中创建了一个TcpListener实例并监听指定端口(同样为19808)。当有新的连接请求时,它会创建一个新的TcpClient对象,接收数据流,并将接收到的字节转换成字符串,展示在richTextBox中。 ```csharp TcpListener TcpListener = new TcpListener(19808); TcpListener.Start(); while (true) { TcpClient TcpClient = TcpListener.AcceptTcpClient(); NetworkStream MyStream = TcpClient.GetStream(); byte[] bytes = new byte[2048]; int bytesRead = MyStream.Read(bytes, 0, bytes.Length); string message = System.Text.Encoding.UTF8.GetString(bytes, 0, bytesRead); this.richTextBox2.Text += message + "\n"; } ``` 在`MainForm_Load`事件中,创建了一个新的线程来执行监听任务,确保服务端在应用程序启动时就开始监听。 整个过程的核心是C#中的网络编程,特别是Socket和TcpClient/TcpListener类的使用,它们提供了在Windows应用程序中建立和管理TCP连接的功能。本文档通过一个实际的聊天应用示例,让读者理解如何创建一个基础的点对点通信系统,这对于理解和开发更复杂的网络应用非常有用,比如实时通信应用、远程桌面或游戏服务器等。