gpt4 book ai didi

.net - 将套接字排序为客户端对象

转载 作者:行者123 更新时间:2023-12-03 11:57:10 24 4
gpt4 key购买 nike

我目前正在用 C# 制作聊天程序,我有一个关于客户端连接的问题。

如何使连接到服务器的每个客户端(套接字)具有名称和更多详细信息?

例如:

乔连接到服务器。创建了一个新对象 c1,其中包含他的姓名和 IP(用于踢/静音/私有(private)消息传递目的)。

稍后,James 连接到服务器。创建了一个新对象 c2,其中包含 James 的名称和 IP。

等等...

我需要将客户端作为对象用于几个主要目的。

例如,如果我想从聊天中踢出某人,我可以在服务器中写入“/kick”,它会踢他。

我希望服务器检查具有该名称的客户端。如果它连接,踢它。

做到这一点的唯一方法是为每个客户制作一个用于这些确切目的的对象。

那么如何为每个套接字创建一个对象呢?

最佳答案

只需将所有相关信息包装在一个类中:

class ClientInfo {
public string Name { get; set; }
public Socket Socket { get; set; }
}

你只需要一个列表:
List<ClientInfo> clients = new List<ClientInfo>();

您可以在连接后轻松添加客户端:
clients.Add(new ClientInfo() { Name = "x", Socket = someSocket });

您还可以按名称和套接字查找客户端:
var client = clients.SingleOrDefault(x => x.Name == "x");
client.Socket.Send(...);

关于.net - 将套接字排序为客户端对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com