当前位置:实例文章 » C#开发实例» [文章]C#网络(Socket和NetworkStream)

C#网络(Socket和NetworkStream)

发布人:shili8 发布时间:2024-08-08 16:39 阅读次数:0

**C#网络编程**

在本文中,我们将讨论如何使用C#进行网络编程,包括Socket和NetworkStream的使用。

### Socket概述Socket是进程间通信的一种机制,它允许两个进程通过网络进行数据交换。Socket可以分为两类:TCP Socket(面向连接)和UDP Socket(无连接)。

#### TCP SocketTCP Socket是一种面向连接的Socket,它保证了数据的可靠传输。每次发送数据前,客户端和服务器都需要建立一个连接,这样就能保证数据的准确性。

#### UDP SocketUDP Socket是一种无连接的Socket,它不保证数据的可靠传输,每次发送数据时,不需要建立连接。

### NetworkStream概述NetworkStream是.NET Framework提供的一个类,它代表了一个网络流,可以用于读取和写入网络数据。它可以与Socket一起使用,来实现网络通信。

### Socket示例代码以下是一个简单的TCP Socket客户端和服务器的示例代码:

csharpusing System;
using System.Net.Sockets;
using System.Text;

class TcpClient{
 static void Main(string[] args)
 {
 // 创建一个Socket对象 TcpClient client = new TcpClient();

 try {
 // 连接到服务器 client.Connect("127.0.0.1",8080);

 // 获取网络流 NetworkStream stream = client.GetStream();

 // 发送数据 byte[] data = Encoding.UTF8.GetBytes("Hello, Server!");
 stream.Write(data,0, data.Length);

 // 接收数据 byte[] receiveData = new byte[1024];
 int bytesRead = stream.Read(receiveData,0, receiveData.Length);
 string receivedMessage = Encoding.UTF8.GetString(receiveData,0, bytesRead);

 Console.WriteLine("Received message: " + receivedMessage);

 // 关闭连接 client.Close();
 }
 catch (Exception ex)
 {
 Console.WriteLine(ex.Message);
 }
 }
}

class TcpServer{
 static void Main(string[] args)
 {
 // 创建一个Socket对象 TcpListener listener = new TcpListener(IPAddress.Any,8080);

 try {
 // 开始监听 listener.Start();

 while (true)
 {
 // 等待连接 TcpClient client = listener.AcceptTcpClient();

 // 获取网络流 NetworkStream stream = client.GetStream();

 // 接收数据 byte[] receiveData = new byte[1024];
 int bytesRead = stream.Read(receiveData,0, receiveData.Length);
 string receivedMessage = Encoding.UTF8.GetString(receiveData,0, bytesRead);

 Console.WriteLine("Received message: " + receivedMessage);

 // 发送数据 byte[] data = Encoding.UTF8.GetBytes("Hello, Client!");
 stream.Write(data,0, data.Length);

 // 关闭连接 client.Close();
 }
 }
 catch (Exception ex)
 {
 Console.WriteLine(ex.Message);
 }
 }
}


### NetworkStream示例代码以下是一个简单的NetworkStream读取和写入数据的示例代码:

csharpusing System;
using System.Net.Sockets;
using System.Text;

class NetworkStreamExample{
 static void Main(string[] args)
 {
 // 创建一个Socket对象 TcpClient client = new TcpClient();

 try {
 // 连接到服务器 client.Connect("127.0.0.1",8080);

 // 获取网络流 NetworkStream stream = client.GetStream();

 // 写入数据 byte[] data = Encoding.UTF8.GetBytes("Hello, Server!");
 stream.Write(data,0, data.Length);

 //读取数据 byte[] receiveData = new byte[1024];
 int bytesRead = stream.Read(receiveData,0, receiveData.Length);
 string receivedMessage = Encoding.UTF8.GetString(receiveData,0, bytesRead);

 Console.WriteLine("Received message: " + receivedMessage);

 // 关闭连接 client.Close();
 }
 catch (Exception ex)
 {
 Console.WriteLine(ex.Message);
 }
 }
}


### 总结在本文中,我们讨论了C#网络编程的基本概念,包括Socket和NetworkStream的使用。我们通过示例代码展示了如何使用TCP Socket进行客户端和服务器通信,以及如何使用NetworkStream读取和写入数据。

相关标签:c#网络开发语言
其他信息

其他资源

Top