引言C作为一种强大的编程语言,广泛应用于Windows平台的应用开发。网络编程是C开发中不可或缺的一部分,它允许开发者创建各种网络应用程序,如Web服务、客户端服务器应用程序等。本教程将为您提供一份详...
C#作为一种强大的编程语言,广泛应用于Windows平台的应用开发。网络编程是C#开发中不可或缺的一部分,它允许开发者创建各种网络应用程序,如Web服务、客户端-服务器应用程序等。本教程将为您提供一份详细的C#网络编程实战指南,帮助您从基础开始,逐步深入,最终能够独立开发网络应用程序。
C#网络编程主要依赖于.NET Framework中的System.Net命名空间。该命名空间提供了丰富的类和接口,用于处理各种网络操作,如TCP/IP、UDP、HTTP等。
以下是一个简单的TCP服务器示例代码:
using System;
using System.Net;
using System.Net.Sockets;
public class TcpServer
{ public static void Main() { // 创建TcpListener TcpListener listener = new TcpListener(IPAddress.Any, 13000); listener.Start(); Console.WriteLine("TCP服务器启动,等待连接..."); // 等待客户端连接 TcpClient client = listener.AcceptTcpClient(); Console.WriteLine("客户端连接成功!"); // 接收数据 NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string dataReceived = System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("接收到的数据:" + dataReceived); // 发送数据 string dataToSend = "Hello, 客户端!"; byte[] dataToSendBytes = System.Text.Encoding.ASCII.GetBytes(dataToSend); stream.Write(dataToSendBytes, 0, dataToSendBytes.Length); // 关闭连接 client.Close(); listener.Stop(); }
}以下是一个简单的TCP客户端示例代码:
using System;
using System.Net.Sockets;
public class TcpClientExample
{ public static void Main() { // 创建TcpClient TcpClient client = new TcpClient("127.0.0.1", 13000); // 发送数据 NetworkStream stream = client.GetStream(); byte[] buffer = System.Text.Encoding.ASCII.GetBytes("Hello, 服务器!"); stream.Write(buffer, 0, buffer.Length); // 接收数据 buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string dataReceived = System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("接收到的数据:" + dataReceived); // 关闭连接 client.Close(); }
}以下是一个简单的UDP服务器示例代码:
using System;
using System.Net;
using System.Net.Sockets;
public class UdpServer
{ public static void Main() { // 创建UdpListener UdpListener listener = new UdpListener(IPAddress.Any, 13000); IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 13000); UdpClient client = new UdpClient(localEP); Console.WriteLine("UDP服务器启动,等待连接..."); // 接收数据 IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0); byte[] dataReceived = client.Receive(ref remoteEP); string dataReceivedString = System.Text.Encoding.ASCII.GetString(dataReceived); Console.WriteLine("接收到的数据:" + dataReceivedString); // 发送数据 string dataToSend = "Hello, 客户端!"; byte[] dataToSendBytes = System.Text.Encoding.ASCII.GetBytes(dataToSend); client.Send(dataToSendBytes, dataToSendBytes.Length, remoteEP); // 关闭连接 client.Close(); listener.Stop(); }
}以下是一个简单的UDP客户端示例代码:
using System;
using System.Net.Sockets;
public class UdpClientExample
{ public static void Main() { // 创建UdpClient UdpClient client = new UdpClient("127.0.0.1", 13000); // 发送数据 string dataToSend = "Hello, 服务器!"; byte[] dataToSendBytes = System.Text.Encoding.ASCII.GetBytes(dataToSend); client.Send(dataToSendBytes, dataToSendBytes.Length); // 接收数据 IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0); byte[] dataReceived = client.Receive(ref remoteEP); string dataReceivedString = System.Text.Encoding.ASCII.GetString(dataReceived); Console.WriteLine("接收到的数据:" + dataReceivedString); // 关闭连接 client.Close(); }
}以下是一个简单的HTTP服务器示例代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class HttpServer
{ public static void Main() { // 创建TcpListener TcpListener listener = new TcpListener(IPAddress.Any, 80); listener.Start(); Console.WriteLine("HTTP服务器启动,等待连接..."); // 等待客户端连接 TcpClient client = listener.AcceptTcpClient(); Console.WriteLine("客户端连接成功!"); // 接收数据 NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string dataReceived = System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("接收到的数据:" + dataReceived); // 发送HTTP响应 string httpResponse = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nHello, World!"; byte[] httpResponseBytes = Encoding.ASCII.GetBytes(httpResponse); stream.Write(httpResponseBytes, 0, httpResponseBytes.Length); // 关闭连接 client.Close(); listener.Stop(); }
}以下是一个简单的HTTP客户端示例代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class HttpClientExample
{ public static void Main() { // 创建TcpClient TcpClient client = new TcpClient("127.0.0.1", 80); // 发送HTTP请求 string httpRequest = "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n"; byte[] httpRequestBytes = Encoding.ASCII.GetBytes(httpRequest); client.GetStream().Write(httpRequestBytes, 0, httpRequestBytes.Length); // 接收HTTP响应 NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string httpResponse = System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("接收到的数据:" + httpResponse); // 关闭连接 client.Close(); }
}通过本教程的学习,您应该已经掌握了C#网络编程的基础知识和实战技巧。在实际开发中,您可以根据需求选择合适的网络编程技术,如TCP、UDP或HTTP。希望这份实战教程能够帮助您在C#网络编程的道路上越走越远。