使用C#编写TCP服务器和客户端通信程序
作者:佚名
上传时间:2023-04-17
运行软件:Visual Studio 2019
软件版本:.NET Framework 4.8
版权申诉
本文主要介绍如何使用C#编写TCP服务器和客户端通信程序。C#是一种通用型、现代化的编程语言,它提供了丰富的网络编程库,可以方便地进行网络编程。
C#网络编程实例
我们首先来看一个简单的C#网络编程实例,该实例实现了一个简单的TCP服务器和客户端通信。以下是服务器端的代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Server {
static void Main(string[] args) {
TcpListener server = null;
try {
// 创建TCP服务器
Int32 port = 8000;
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
server = new TcpListener(localAddr, port);
// 开始监听
server.Start();
// 处理连接请求
Byte[] bytes = new Byte[256];
String data = null;
while (true) {
Console.Write("等待连接... ");
// 接收连接请求
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("连接成功!");
// 获取客户端数据
data = null;
NetworkStream stream = client.GetStream();
int i;
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) {
data = Encoding.ASCII.GetString(bytes, 0, i);
Console.WriteLine("接收到数据:{0}", data);
// 发送响应数据
byte[] msg = Encoding.ASCII.GetBytes(data);
stream.Write(msg, 0, msg.Length);
Console.WriteLine("响应数据已发送:{0}", data);
}
// 关闭连接
client.Close();
}
} catch (Exception e) {
Console.WriteLine("发生异常: {0}", e);
} finally {
server.Stop();
}
}
}
以下是客户端的代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Client {
static void Main(string[] args) {
TcpClient client = null;
try {
// 连接服务器
Int32 port = 8000;
IPAddress serverAddr = IPAddress.Parse("127.0.0.1");
client = new TcpClient();
client.Connect(serverAddr, port);
Console.WriteLine("连接服务器成功!");
// 发送数据
String message = "Hello, TCP!";
Byte[] data = Encoding.ASCII.GetBytes(message);
NetworkStream stream = client.GetStream();
stream.Write(data, 0, data.Length);
Console.WriteLine("发送数据:{0}", message);
// 接收响应数据
data = new Byte[256];
String responseData = String.Empty;
Int32 bytes = stream.Read(data, 0, data.Length);
responseData = Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine("接收到响应数据:{0}", responseData);
} catch (Exception e) {
Console.WriteLine("发生异常: {0}", e);
} finally {
client.Close();
}
}
}
以上代码演示了如何使用C#编写一个简单的TCP服务器和客户端通信程序。
C# socket编程教程
C#提供了Socket类,可以方便地进行Socket编程。以下是一个简单的C# socket编程教程,演示了如何使用Socket类创建一个TCP客户端:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Client {
static void Main(string[] args) {
// 连接服务器
Int32 port = 8000;
IPAddress serverAddr = IPAddress.Parse("127.0.0.1");
IPEndPoint remoteEP = new IPEndPoint(serverAddr, port);
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.Connect(remoteEP);
Console.WriteLine("连接服务器成功!");
// 发送数据
String message = "Hello, Socket!";
Byte[] data = Encoding.ASCII.GetBytes(message);
client.Send(data);
Console.WriteLine("发送数据:{0}", message);
// 接收响应数据
data = new Byte[256];
String responseData = String.Empty;
Int32 bytes = client.Receive(data);
responseData = Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine("接收到响应数据:{0}", responseData);
// 关闭连接
client.Shutdown(SocketShutdown.Both);
client.Close();
}
}
C#客户端服务器通信代码
接下来,我们来看一下如何使用C#编写一个TCP客户端和服务器端通信的代码。以下是服务器端的代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
class Server {
static void Main(string[] args) {
TcpListener server = null;
try {
// 创建TCP服务器
Int32 port = 8000;
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
server = new TcpListener(localAddr, port);
// 开始监听
server.Start();
// 处理连接请求
while (true) {
Console.Write("等待连接... ");
// 接收连接请求
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("连接成功!");
// 创建线程处理客户端请求
Thread t = new Thread(new ParameterizedThreadStart(HandleClient));
t.Start(client);
}
} catch (Exception e) {
Console.WriteLine("发生异常: {0}", e);
} finally {
server.Stop();
}
}
static void HandleClient(Object obj) {
TcpClient client = (TcpClient)obj;
try {
// 获取客户端数据
Byte[] bytes = new Byte[256];
String data = null;
NetworkStream stream = client.GetStream();
int i;
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) {
data = Encoding.ASCII.GetString(bytes, 0, i);
Console.WriteLine("接收到数据:{0}", data);
// 发送响应数据
byte[] msg = Encoding.ASCII.GetBytes(data);
stream.Write(msg, 0, msg.Length);
Console.WriteLine("响应数据已发送:{0}", data);
}
// 关闭连接
client.Close();
} catch (Exception e) {
Console.WriteLine("发生异常: {0}", e);
}
}
}
以下是客户端的代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Client {
static void Main(string[] args) {
// 连接服务器
Int32 port = 8000;
IPAddress serverAddr = IPAddress.Parse("127.0.0.1");
IPEndPoint remoteEP = new IPEndPoint(serverAddr, port);
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.Connect(remoteEP);
Console.WriteLine("连接服务器成功!");
// 发送数据
String message = "Hello, TCP!";
Byte[] data = Encoding.ASCII.GetBytes(message);
client.Send(data);
Console.WriteLine("发送数据:{0}", message);
// 接收响应数据
data = new Byte[256];
String responseData = String.Empty;
Int32 bytes = client.Receive(data);
responseData = Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine("接收到响应数据:{0}", responseData);
// 关闭连接
client.Shutdown(SocketShutdown.Both);
client.Close();
}
}
以上代码演示了如何使用C#编写一个TCP客户端和服务器端通信的代码。
C# TCP通信开发案例
最后,我们来看一个完整的C# TCP通信开发案例,该案例实现了一个简单的聊天室程序。以下是服务器端的代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
class Server {
static void Main(string[] args) {
TcpListener server = null;
try {
// 创建TCP服务器
Int32 port = 8000;
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
server = new TcpListener(localAddr, port);
// 开始监听
server.Start();
Console.WriteLine("聊天室服务器已启动...");
// 处理连接请求
while (true) {
Console.Write("等待连接... ");
// 接收连接请求
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("连接成功!");
// 创建线程处理客户端请求
Thread t = new Thread(new ParameterizedThreadStart(HandleClient));
t.Start(client);
}
} catch (Exception e) {
Console.WriteLine("发生异常: {0}", e);
} finally {
server.Stop();
}
}
static void HandleClient(Object obj) {
TcpClient client = (TcpClient)obj;
try {
// 获取客户端数据
Byte[] bytes = new Byte[256];
String data = null;
NetworkStream stream = client.GetStream();
int i;
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) {
data = Encoding.ASCII.GetString(bytes, 0, i);
Console.WriteLine("接收到数据:{0}", data);
// 广播消息
BroadcastMessage(data);
// 发送响应数据
byte[] msg = Encoding.ASCII.GetBytes(data);
stream.Write(msg, 0, msg.Length);
Console.WriteLine("响应数据已发送:{0}", data);
}
// 关闭连接
client.Close();
} catch (Exception e) {
Console.WriteLine("发生异常: {0}", e);
}
}
static void BroadcastMessage(String message) {
// 广播消息给所有客户端
byte[] data = Encoding.ASCII.GetBytes(message);
foreach (TcpClient client in clients) {
NetworkStream stream = client.GetStream();
stream.Write(data, 0, data.Length);
Console.WriteLine("已向客户端发送消息:{0}", message);
}
}
static ArrayList clients = new ArrayList();
}
以下是客户端的代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
class Client {
static void Main(string[] args) {
// 连接服务器
Int32 port = 8000;
IPAddress serverAddr = IPAddress.Parse("127.0.0.1");
IPEndPoint remoteEP = new IPEndPoint(serverAddr, port);
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.Connect(remoteEP);
Console.WriteLine("连接服务器成功!");
// 启动接收线程
Thread t = new Thread(new ThreadStart(ReceiveMessage));
t.Start();
// 发送数据
while (true) {
String message = Console.ReadLine();
Byte[] data = Encoding.ASCII.GetBytes(message);
client.Send(data);
}
}
static void ReceiveMessage() {
// 接收服务器消息
byte[] data = new byte[1024];
String responseData = String.Empty;
while (true) {
Int32 bytes = client.Receive(data);
responseData = Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine("接收到消息:{0}", responseData);
}
}
static Socket client = null;
}
以上代码演示了如何使用C#编写一个简单的聊天室程序,实现了TCP客户端和服务器端的通信。
C#网络编程实用技巧
最后,我们来总结一下C#网络编程实用技巧:
- 使用TcpListener和TcpClient类进行TCP通信。
- 使用Socket类进行Socket编程。
- 使用线程处理客户端请求,可以提高服务器并发处理能力。
- 使用ArrayList等数据结构来存储客户端连接,方便广播消息。
- 使用Encoding类进行字符串编码转换,避免中文乱码问题。
希望这篇文章能够帮助大家更好地理解C#网络编程。
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com
用户评论
相关推荐
使用C#编写TCP服务器和客户端通信程序
本文主要介绍如何使用C#编写TCP服务器和客户端通信程序。C#是一种通用型、现代化的编程语言,它提供了丰富的网络编程库,可以方便地进行网络编程。C#网络编程实例我们首先来看一个简单的C#网络编程实
.NET Framework 4.8
Visual Studio 2019
2023-04-17 08:12
C#编写的TCP IP通信程序服务器和客户端
C#编写的TCP/IP通信程序,包含服务器和客户端,简单易懂,有注释。初学者学习,不建议高手看
rar
0B
2020-05-08 06:01
C#编写的TCP IP通信程序服务器和客户端
C#编写的TCP/IP通信程序,包含服务器和客户端,简单易懂,有注释。 初学者学习,不建议高手看
RAR
0B
2018-12-09 00:51
TCP Socket编写的客户端服务器通信程序
是用C#语言编写的客户端和服务器通信的控制台程序,需先启动服务器端的程序,再启动客户端的。
RAR
0B
2019-05-27 21:56
使用Erlang编写TCP服务器和客户端通信
这个示例代码演示了如何使用Erlang编写一个简单的TCP服务器和客户端程序,以及如何在它们之间进行双向通信。实现方式使用Erlang的gen_tcp模块来创建和管理TCP连接,并使用Erlang的消
Erlang/OTP 22
Erlang/OTP
2023-04-25 03:06
使用C#实现TCP服务器和客户端的通信
本文将介绍如何使用C#编写TCP服务器和客户端的通信程序。主要包含以下内容:C# TCP服务器通信C# TCP客户端通信C# Socket编程C# 网络编程 示例代码代码释义总结C#
Visual Studio 2019
C#
2023-03-28 19:30
使用C语言编写TCP通信程序详解
本文详细介绍了使用C语言编写TCP通信程序的步骤及技巧,包括服务器/客户端程序框架的实现和示例源码。并在ubuntu 20.04中验证了程序的正确性。对初学者来说是一篇很好的学习资源。
pdf
484.52KB
2023-05-10 07:04
C#编写的TCP客户端和TCP服务端
语言:C#,功能:简易TCP客户端和TCP服务端。实现客户端与服务端的通信。实测:将服务端放在服务器上,客户端放在本地,通信正常。
RAR
0B
2018-12-20 06:46
TCP服务器和客户端程序
包含了一个完整的TCP客户端和服务器端应用程序,可以直接在vc++6.0下运行
rar
0B
2019-01-13 17:11
C#网口通信TCP服务器和客户端代码.zip
使用C# Winform实现了TCP的服务器和客户端(两个软件代码)
ZIP
126KB
2021-05-11 22:25