有没有更完善更好的代码
时间: 2024-02-18 21:02:02 浏览: 17
当然有,以下是一个使用 C# 和 FastSocket 写的更完善、更健壮的服务器端程序的示例代码:
```csharp
using System;
using System.Net;
using System.Threading.Tasks;
using FastSocket.Server;
class Program
{
static async Task Main(string[] args)
{
try
{
// 创建一个 FastSocket 服务器实例
var server = new FastSocketServer();
// 设置服务器的监听地址和端口号
server.SetListenAddress(IPAddress.Any);
server.SetListenPort(12345);
// 注册处理客户端连接的回调函数
server.OnConnected += (sender, e) =>
{
Console.WriteLine($"Client connected: {e.Session.RemoteEndPoint}");
// 发送欢迎消息给客户端
e.Session.Send("Welcome to the server!");
};
// 注册处理客户端消息的回调函数
server.OnReceived += (sender, e) =>
{
Console.WriteLine($"Received message from {e.Session.RemoteEndPoint}: {e.Message}");
// 处理客户端发送的消息
var response = HandleMessage(e.Message);
// 发送回复消息给客户端
e.Session.Send(response);
};
// 注册处理客户端断开连接的回调函数
server.OnDisconnected += (sender, e) =>
{
Console.WriteLine($"Client disconnected: {e.Session.RemoteEndPoint}");
};
// 启动服务器
await server.StartAsync();
Console.WriteLine("Server started, press any key to stop...");
// 等待用户按下任意键停止服务器
Console.ReadKey();
// 停止服务器
await server.StopAsync();
}
catch (Exception ex)
{
Console.WriteLine($"Error occurred: {ex.Message}");
}
}
static string HandleMessage(string message)
{
// 在这里处理客户端发送的消息,返回一个回复消息给客户端
return $"You said: {message}";
}
}
```
这段代码除了实现了基本的连接、消息收发和断开连接的处理,还添加了错误处理和消息处理的逻辑。在 `HandleMessage` 函数中处理客户端发送的消息,并返回一个回复消息给客户端。同时,在 `Main` 函数中添加了异常处理,以保证服务器的稳定性。