首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]揭秘C#网络编程:从入门到实战的示例代码全解析

发布于 2025-06-22 10:46:14
0
170

引言C网络编程是C语言的重要组成部分,它使得开发者能够利用C创建各种网络应用程序,如Web服务、客户端服务器应用程序等。本文将深入探讨C网络编程,从基础概念到实际应用,通过一系列示例代码帮助读者从入门...

引言

C#网络编程是C#语言的重要组成部分,它使得开发者能够利用C#创建各种网络应用程序,如Web服务、客户端-服务器应用程序等。本文将深入探讨C#网络编程,从基础概念到实际应用,通过一系列示例代码帮助读者从入门到实战。

一、C#网络编程基础

1.1 网络通信模型

C#网络编程主要基于套接字(Socket)进行,套接字是通信的端点。在网络编程中,常见的通信模型有客户端-服务器(Client-Server)和发布-订阅(Publish-Subscribe)等。

1.2 套接字编程

套接字编程包括TCP和UDP两种协议。TCP是一种可靠的、面向连接的协议,而UDP是一种不可靠的、无连接的协议。

二、TCP编程示例

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

using System;
using System.Net;
using System.Net.Sockets;
public class TCPServer
{ public static void StartServer() { IPAddress ipAddr = IPAddress.Parse("127.0.0.1"); IPEndPoint localEp = new IPEndPoint(ipAddr, 6000); TcpListener server = new TcpListener(localEp); server.Start(); Console.WriteLine("Server is running..."); while (true) { TcpClient client = server.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("Message from client: {0}", message); // Send a response to the client stream.Write(System.Text.Encoding.ASCII.GetBytes("Received message"), 0, "Received message".Length); client.Close(); } }
}
public class TCPClient
{ public static void StartClient() { TcpClient client = new TcpClient("127.0.0.1", 6000); NetworkStream stream = client.GetStream(); string message = "Hello, Server!"; byte[] msg = System.Text.Encoding.ASCII.GetBytes(message); stream.Write(msg, 0, msg.Length); byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string response = System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("Server response: {0}", response); stream.Close(); client.Close(); }
}

三、UDP编程示例

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

using System;
using System.Net;
using System.Net.Sockets;
public class UDPServer
{ public static void StartServer() { IPEndPoint localEp = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6000); UdpListener server = new UdpListener(localEp); Console.WriteLine("Server is running..."); IPEndPoint remoteEp = new IPEndPoint(IPAddress.Any, 0); while (true) { byte[] data = server.Receive(ref remoteEp); string message = System.Text.Encoding.ASCII.GetString(data); Console.WriteLine("Received message from {0}: {1}", remoteEp, message); // Send a response to the client byte[] sendBytes = System.Text.Encoding.ASCII.GetBytes("Received message"); server.Send(sendBytes, sendBytes.Length, remoteEp); } }
}
public class UDPClient
{ public static void StartClient() { IPEndPoint localEp = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6001); UdpClient client = new UdpClient(localEp); string message = "Hello, Server!"; byte[] sendBytes = System.Text.Encoding.ASCII.GetBytes(message); IPEndPoint remoteEp = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6000); client.Send(sendBytes, sendBytes.Length, remoteEp); byte[] buffer = new byte[1024]; IPEndPoint receivedEp = new IPEndPoint(IPAddress.Any, 0); buffer = client.Receive(ref receivedEp); string response = System.Text.Encoding.ASCII.GetString(buffer); Console.WriteLine("Server response: {0}", response); client.Close(); }
}

四、Web编程示例

以下是一个简单的ASP.NET Web服务示例代码:

using System;
using System.Web;
using System.Web.Services;
public class WebService1 : WebService
{ [WebMethod] public string AddNumbers(double x, double y) { return (x + y).ToString(); }
}

五、总结

本文通过示例代码详细解析了C#网络编程的基本概念、TCP和UDP编程、以及Web编程。希望读者通过学习这些示例,能够掌握C#网络编程的基本技能,并将其应用于实际项目中。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流