我对 C# 不是很熟练,但我将它用于家庭作业。我创建了一个函数来将连接到服务器的客户端列表发送给其他客户端
private void SendListToClients()
{
Socket userSocket=null;
string username = null;
string role = null;
foreach (User Users in UserList)
{
userSocket = Users.getSocket();
username = Users.getUsername();
role = Users.getRole();
userSocket.Send(Encoding.ASCII.GetBytes("!ListStart\n"));
for(int i=0;i<UserList.Count;i++)
{
User UsersControl = (User)UserList[i];
string roleU = UsersControl.getRole();
string usernameU = UsersControl.getUsername();
userSocket.Send(Encoding.ASCII.GetBytes("!ClientList:"+usernameU + ":" + roleU+"\n"));
}
}
}
我的问题出在 userSocket.Send() 行中,当我在客户端收到此消息时,我没有收到(例如,如果列表中的用户是 5 个)5 个发送,但 1 个与所有 5 个用户一起发送。我该如何解决这个问题?否则有可能通过套接字直接发送我的对象(UserList)吗?