引言C作为一种功能强大的编程语言,在网络编程领域有着广泛的应用。网络编程是实现网络通信的关键技术,它允许程序在不同的计算机之间传输数据。本文将深入探讨C网络编程的核心技术,并通过实战案例解析,帮助读者...
C#作为一种功能强大的编程语言,在网络编程领域有着广泛的应用。网络编程是实现网络通信的关键技术,它允许程序在不同的计算机之间传输数据。本文将深入探讨C#网络编程的核心技术,并通过实战案例解析,帮助读者轻松掌握网络编程的精髓。
网络编程涉及数据的发送和接收,它依赖于网络协议和传输层。C#网络编程主要使用.NET Framework提供的System.Net命名空间中的类来实现。
using System;
using System.Net.Sockets;
class Program
{ static void Main() { try { TcpClient client = new TcpClient("127.0.0.1", 8000); NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string received = System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("Received: " + received); stream.Write(System.Text.Encoding.ASCII.GetBytes("Hello Server!"), 0, "Hello Server!".Length); stream.Close(); client.Close(); } catch (Exception e) { Console.WriteLine(e.ToString()); } }
}using System;
using System.Net.Sockets;
using System.Text;
class Program
{ static void Main() { TcpListener server = null; try { Int32 port = 8000; server = new TcpListener(IPAddress.Any, port); server.Start(); while (true) { TcpClient client = server.AcceptTcpClient(); NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string received = Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("Received: " + received); stream.Write(Encoding.ASCII.GetBytes("Hello Client!"), 0, "Hello Client!".Length); stream.Close(); client.Close(); } } catch (SocketException e) { Console.WriteLine("SocketException: {0}", e); } finally { server?.Stop(); } }
}using System;
using System.Net.Sockets;
class Program
{ static void Main() { UdpClient client = new UdpClient(); IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 8000); client.ExclusiveAddressUse = false; client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); client.Bind(localEP); IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8000); byte[] sendBytes = Encoding.ASCII.GetBytes("Hello UDP Server!"); client.Send(sendBytes, sendBytes.Length, remoteEP); byte[] receiveBytes = new byte[1024]; EndPoint remoteEPReceived = new IPEndPoint(IPAddress.Any, 0); int received = client.Receive(receiveBytes, ref remoteEPReceived); string receivedString = Encoding.ASCII.GetString(receiveBytes, 0, received); Console.WriteLine("Received: " + receivedString); client.Close(); }
}using System;
using System.Net.Sockets;
using System.Text;
class Program
{ static void Main() { UdpListener server = new UdpListener(IPAddress.Any, 8000); while (true) { byte[] receiveBytes = new byte[1024]; IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0); UdpReceiveResult result = server.Receive(ref remoteEP); string received = Encoding.ASCII.GetString(result.Buffer); Console.WriteLine("Received: " + received); byte[] sendBytes = Encoding.ASCII.GetBytes("Hello UDP Client!"); server.Send(sendBytes, sendBytes.Length, remoteEP); } }
}通过本文的实战案例解析,读者应该对C#网络编程有了更深入的理解。网络编程是实现程序间通信的关键技术,而C#提供了丰富的类库来支持网络编程。通过不断实践和总结,相信读者能够轻松掌握网络编程的核心技术。