私は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送信は受信されませんが、5ユーザーすべてで1送信されます。どうすればこれを解決できますか?そうでなければ、私のオブジェクト(UserList)をソケットを介して入力的に送信する可能性がありますか?