因为这段时间在学习Socket,所以就试着写了一个简单的聊天室。主要分为服务器端和多个客户端。利用服务器端作数据中转站,实现消息群发。
- 服务器端有两个类:
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
namespace 聊天室_Socket_TCP_服务器端
{
class Program
{
static List<Client> clients = new List<Client>();
static List<Client> notClients = new List<Client>();
/// <summary>
/// 广播消息
/// </summary>
/// <param name="message"></param>
public static void CastMessageTOAllConnetedClients(string message)
{
foreach (var client in clients)
{
if (client.Conneted)
{
client.CastMessage(message);
}
else
{
notClients.Add(client);
}
}
foreach (var temp in notClients)
{
clients.Remove(temp);
}
}
static void Main(string[] args)
{
Socket tcpSever = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
tcpSever.Bind(new IPEndPoint(IPAddress.Parse("192.168.1.2"), 8899));
tcpSever.Listen(