引言网络编程是软件开发中的一个重要领域,它涉及到如何在不同的计算机之间进行数据传输和通信。C作为一种功能强大的编程语言,在网络编程领域有着广泛的应用。本文将深入探讨C网络编程的核心技术,并通过实战示例...
网络编程是软件开发中的一个重要领域,它涉及到如何在不同的计算机之间进行数据传输和通信。C#作为一种功能强大的编程语言,在网络编程领域有着广泛的应用。本文将深入探讨C#网络编程的核心技术,并通过实战示例帮助读者轻松掌握。
网络编程主要涉及以下几个基本概念:
C#提供了丰富的网络编程类库,主要包括:
套接字编程是C#网络编程的基础,下面通过一个简单的TCP客户端和服务器示例来介绍套接字编程。
using System;
using System.Net;
using System.Net.Sockets;
public class TcpServer
{ public static void Main() { IPAddress ipAddr = IPAddress.Any; int port = 8080; TcpListener listener = new TcpListener(ipAddr, port); listener.Start(); Console.WriteLine("服务器启动,等待客户端连接..."); using (TcpClient client = listener.AcceptTcpClient()) { Console.WriteLine("客户端连接成功。"); using (NetworkStream stream = client.GetStream()) { byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string message = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine("接收到的消息:{0}", message); } } listener.Stop(); Console.WriteLine("服务器已关闭。"); }
}using System;
using System.Net.Sockets;
using System.Text;
public class TcpClient
{ public static void Main() { string ipAddr = "127.0.0.1"; int port = 8080; using (TcpClient client = new TcpClient(ipAddr, port)) { Console.WriteLine("连接到服务器..."); using (NetworkStream stream = client.GetStream()) { string message = "Hello, Server!"; byte[] buffer = Encoding.UTF8.GetBytes(message); stream.Write(buffer, 0, buffer.Length); Console.WriteLine("消息发送成功。"); } } }
}HTTP编程主要涉及HTTP客户端和服务器。下面通过一个简单的HTTP服务器示例来介绍HTTP编程。
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
public class HttpServer
{ public static void Main() { IPAddress ipAddr = IPAddress.Any; int port = 80; TcpListener listener = new TcpListener(ipAddr, port); listener.Start(); Console.WriteLine("HTTP服务器启动,等待客户端连接..."); while (true) { TcpClient client = listener.AcceptTcpClient(); Task.Run(() => HandleClient(client)); } } private static void HandleClient(TcpClient client) { using (client) { using (NetworkStream stream = client.GetStream()) { byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string request = Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine("客户端请求:{0}", request); string response = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nHello, World!"; byte[] responseBytes = Encoding.UTF8.GetBytes(response); stream.Write(responseBytes, 0, responseBytes.Length); } } }
}using System;
using System.Net.Http;
using System.Threading.Tasks;
public class HttpClient
{ public static async Task Main() { string url = "http://127.0.0.1:80/"; using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(url); Console.WriteLine("服务器响应:{0}", await response.Content.ReadAsStringAsync()); } }
}通过本文的介绍,相信读者已经对C#网络编程有了更深入的了解。在实际开发中,网络编程的应用非常广泛,希望本文能帮助读者轻松掌握网络通信的核心技术。