C# 简单聊天服务器程序
目录
[一、 介绍](#一、 介绍)
[二、 简单聊天服务器程序](#二、 简单聊天服务器程序)
[三、 简单聊天服务器程序](#三、 简单聊天服务器程序)
[四、 简单聊天服务器程序](#四、 简单聊天服务器程序)
[五、 简单聊天服务器程序](#五、 简单聊天服务器程序)
[六、 简单聊天服务器程序](#六、 简单聊天服务器程序)
[class Program](#class Program)
[static void Main(string[] args)](#static void Main(string[] args))
- 介绍
它使用了多线程和网络编程技术。这个程序可以同时处理多个客户端连接,并在客户端之间转发消息。这个程序创建了一个`ChatServer`类,它可以监听指定端口上的客户端连接。当有新的客户端连接时,它会创建一个新的线程来处理该客户端的消息。`HandleClient`方法负责读取客户端发送的消息,并将其转发给其他客户端。
- 简单聊天服务器程序
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
class ChatServer
{
private TcpListener _listener;
private bool _isRunning;
public ChatServer(int port)
{
_listener = new TcpListener(IPAddress.Any, port);
_isRunning = false;
}
- 简单聊天服务器程序
public void Start()
{
_listener.Start();
_isRunning = true;
while (_isRunning)
{
TcpClient client = _listener.AcceptTcpClient();
Thread clientThread = new Thread(HandleClient);
clientThread.Start(client);
}
}
- 简单聊天服务器程序
public void Stop()
{
_isRunning = false;
_listener.Stop();
}
private void HandleClient(object obj)
{
TcpClient client = (TcpClient)obj;
NetworkStream stream = client.GetStream();
try
{
while (true)
{
byte[] buffer = new byte[1024];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
if (bytesRead == 0)
{
break;
}
- 简单聊天服务器程序
string message = Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine("收到消息: " + message);
byte[] response = Encoding.UTF8.GetBytes("已收到: " + message);
stream.Write(response, 0, response.Length);
}
}
catch (Exception ex)
{
Console.WriteLine("客户端异常: " + ex.Message);
}
finally
{
client.Close();
}
}
}
- 简单聊天服务器程序
class Program
{
static void Main(string[] args)
{
Console.WriteLine("启动聊天服务器...");
ChatServer server = new ChatServer(8888);
server.Start();
}
}