C# 网络编程之TCP
TCP是传输控制协议,是一种无连接的、可靠的、基于字节流的传输协议,它能够在网络上确保数据的可靠传输。在C#/.NET中,我们可以使用System.Net.Sockets命名空间下的TcpClient和TcpListener类来实现TCP网络编程。
TCP客户端
连接服务器
要建立一个TCP连接,需要指定服务器的IP地址和端口号,并使用TcpClient类创建一个TCP客户端对象。以下是一个连接服务器的示例代码:
using System;
using System.Net.Sockets;
class Program
{
static void Main(string[] args)
{
// 服务器IP地址和端口号
string serverIP = "192.168.0.1";
int serverPort = 8888;
// 创建TCP客户端对象
TcpClient client = new TcpClient();
try
{
// 连接服务器
client.Connect(serverIP, serverPort);
// 连接成功
Console.WriteLine("连接服务器成功");
}
catch (Exception ex)
{
// 连接失败
Console.WriteLine("连接服务器失败:" + ex.Message);
}
finally
{
// 释放TCP客户端资源
client.Close();
}
}
}
发送数据
连接成功后,可以使用TcpClient对象的GetStream方法获取与服务器通信的网络流,然后使用流的Write方法向服务器发送数据。以下是一个发送数据的示例代码:
using System;
using System.Net.Sockets;
class Program
{
static void Main(string[] args)
{
// 服务器IP地址和端口号
string serverIP = "192.168.0.1";
int serverPort = 8888;
// 要发送的数据
string data = "Hello World";
// 创建TCP客户端对象
TcpClient client = new TcpClient();
try
{
// 连接服务器
client.Connect(serverIP, serverPort);
// 连接成功,发送数据
NetworkStream stream = client.GetStream();
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(data);
stream.Write(buffer, 0, buffer.Length);
Console.WriteLine("已向服务器发送数据");
}
catch (Exception ex)
{
// 连接或发送失败
Console.WriteLine("操作失败:" + ex.Message);
}
finally
{
// 释放TCP客户端资源
client.Close();
}
}
}
TCP服务器
监听端口
要创建一个TCP服务器,需要使用TcpListener类监听指定的端口,并等待客户端的连接。以下是一个监听端口的示例代码:
using System;
using System.Net;
using System.Net.Sockets;
class Program
{
static void Main(string[] args)
{
// 本地IP地址和端口号
string localIP = "127.0.0.1";
int localPort = 8888;
// 创建TCP服务器对象
TcpListener server = new TcpListener(IPAddress.Parse(localIP), localPort);
try
{
// 开始监听
server.Start();
Console.WriteLine("服务器已启动,等待客户端连接");
// 接收客户端连接
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("客户端已连接");
}
catch (Exception ex)
{
Console.WriteLine("操作失败:" + ex.Message);
}
finally
{
// 停止监听
server.Stop();
}
}
}
接收数据
连接成功后,可以使用TcpClient对象的GetStream方法获取与客户端通信的网络流,然后使用流的Read方法接收客户端发送的数据。以下是一个接收数据的示例代码:
using System;
using System.Net;
using System.Net.Sockets;
class Program
{
static void Main(string[] args)
{
// 本地IP地址和端口号
string localIP = "127.0.0.1";
int localPort = 8888;
// 创建TCP服务器对象
TcpListener server = new TcpListener(IPAddress.Parse(localIP), localPort);
try
{
// 开始监听
server.Start();
Console.WriteLine("服务器已启动,等待客户端连接");
// 接收客户端连接
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("客户端已连接");
// 接收客户端发送的数据
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[1024];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
string data = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine("已接收到客户端发送的数据:" + data);
}
catch (Exception ex)
{
Console.WriteLine("操作失败:" + ex.Message);
}
finally
{
// 停止监听
server.Stop();
}
}
}
以上是TCP客户端和TCP服务器的基本使用方法,可以根据需要进行修改和扩展,实现更加复杂和高效的网络编程功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c# 网络编程之tcp - Python技术站