引言网络编程是现代软件开发中不可或缺的一部分。C作为一种功能强大的编程语言,提供了丰富的网络编程功能。本文将深入探讨C网络编程的核心概念,并通过实战案例解析,帮助读者轻松开启高效网络编程之旅。一、C网...
网络编程是现代软件开发中不可或缺的一部分。C#作为一种功能强大的编程语言,提供了丰富的网络编程功能。本文将深入探讨C#网络编程的核心概念,并通过实战案例解析,帮助读者轻松开启高效网络编程之旅。
C#网络编程主要基于两种模型:阻塞IO和非阻塞IO。
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; IPEndPoint localEp = new IPEndPoint(ipAddr, port); TcpListener listener = new TcpListener(localEp); listener.Start(); Console.WriteLine("Server started. Waiting for connections..."); while (true) { TcpClient client = listener.AcceptTcpClient(); Console.WriteLine("Client connected: {0}", client.Client.RemoteEndPoint); NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string message = System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("Received message: {0}", message); stream.Close(); client.Close(); } }
}以下是一个简单的TCP客户端示例,用于连接到服务器并发送数据:
using System;
using System.Net.Sockets;
public class TcpClientExample
{ public static void Main() { string ip = "127.0.0.1"; int port = 8080; using (TcpClient client = new TcpClient(ip, port)) { NetworkStream stream = client.GetStream(); byte[] buffer = System.Text.Encoding.ASCII.GetBytes("Hello, server!"); stream.Write(buffer, 0, buffer.Length); stream.Close(); } }
}以下是一个简单的HTTP服务器示例,用于处理HTTP请求:
using System;
using System.Net;
using System.Text;
public class HttpServer
{ public static void Main() { IPAddress ipAddr = IPAddress.Any; int port = 8080; HttpListener listener = new HttpListener(); listener.Prefixes.Add("http://+:" + port + "/"); listener.Start(); Console.WriteLine("HTTP server started. Waiting for requests..."); while (true) { HttpListenerContext context = listener.GetContext(); HttpListenerRequest request = context.Request; HttpListenerResponse response = context.Response; string responseString = "Hello, world!"; byte[] buffer = Encoding.UTF8.GetBytes(responseString); response.ContentLength64 = buffer.Length; response.OutputStream.Write(buffer, 0, buffer.Length); response.OutputStream.Close(); } }
}通过以上实战案例,我们可以看到C#网络编程的强大功能。在实际开发中,我们可以根据需求选择合适的网络编程模型和组件,实现高效的网络通信。希望本文能帮助您轻松开启高效网络编程之旅。