C#基于TCP协议的服务器端和客户端通信编程的基础教程
1. TCP协议简介
TCP协议是面向连接的、可靠的传输层网络协议,常用于提供高可靠性的通信服务,其优点包括可靠性高、传输效率稳定等。
2. C#基于TCP协议的服务器端和客户端通信编程
编写C#程序实现TCP通信需要遵循以下基本步骤:
- 创建服务器端程序和客户端程序的套接字(Socket)
- 设置服务器端程序的本地IP地址和端口
- 启动服务器端的监听服务
- 等待客户端连接服务器
- 客户端连接成功后,建立连接并发送消息
以下是一些示例代码,可以帮助理解以上步骤。
示例1:服务器端代码
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class TcpServer
{
static void Main(string[] args)
{
// 创建服务器套接字并设置本地IP地址和端口
TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 8888);
// 启动服务器监听服务
server.Start();
Console.WriteLine("服务器已启动,等待客户端连接...");
// 等待客户端连接
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("客户端已连接");
// 获取用于收发数据的数据流对象
NetworkStream stream = client.GetStream();
// 循环接收客户端发送的消息
while (true)
{
// 获取客户端发送的消息
byte[] buffer = new byte[1024];
int count = stream.Read(buffer, 0, buffer.Length);
string message = Encoding.Default.GetString(buffer, 0, count);
// 如果接收到的消息为空,说明客户端已关闭连接,退出循环
if (string.IsNullOrEmpty(message))
{
Console.WriteLine("客户端已关闭连接");
break;
}
// 打印客户端发送的消息
Console.WriteLine("收到客户端的消息:{0}", message);
}
// 关闭套接字和数据流对象
stream.Close();
client.Close();
server.Stop();
}
}
示例2:客户端代码
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class TcpClient
{
static void Main(string[] args)
{
// 创建客户端套接字
TcpClient client = new TcpClient();
// 连接服务器
client.Connect(IPAddress.Parse("127.0.0.1"), 8888);
Console.WriteLine("已连接服务器");
// 获取用于收发数据的数据流对象
NetworkStream stream = client.GetStream();
// 循环发送消息
while (true)
{
// 读取用户输入的消息
Console.Write("请输入要发送的消息:");
string message = Console.ReadLine();
// 如果用户未输入消息,退出循环
if (string.IsNullOrEmpty(message))
{
Console.WriteLine("退出程序");
break;
}
// 将消息转换为字节数组并发送给服务器
byte[] buffer = Encoding.Default.GetBytes(message);
stream.Write(buffer, 0, buffer.Length);
}
// 关闭套接字和数据流对象
stream.Close();
client.Close();
}
}
3. 总结
本文介绍了C#基于TCP协议的服务器端和客户端通信编程的基础教程,涵盖了TCP协议简介、编写C#程序实现TCP通信的基本步骤以及两个具体示例代码。开发人员可以根据需要自行扩展和优化相关代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#基于TCP协议的服务器端和客户端通信编程的基础教程 - Python技术站