【发布时间】:2017-03-14 15:19:04
【问题描述】:
我想为每个 Socket 设置一个 ID。
目前我有这个:
Socket socket;
try{socket = serverSocket.EndAccept(AR);}
catch (ArgumentException e) { WriteConsoleColor(new ColoredString(ConsoleColor.Red, "[ERROR] " + e));return; }
clientSockets.Add(socket);
socket.BeginReceive(buffer, 0, BUFFER_SIZE, SocketFlags.None, ReceiveCallback, socket);
serverSocket.BeginAccept(AcceptCallback, null);
login_script.OnPlayerConnectToTCP(clientSockets.Count);
我使用 clientSockets.Count 设置 ID,但我认为 不是设置 ID 的最佳方式。
我也有一个OnPlayerDisconnectFromTCP(ID,reason);
Socket current = (Socket)AR.AsyncState;
if (current.Poll(0, SelectMode.SelectRead)){
if (current.Receive(recBuf, SocketFlags.Peek) == 0){
login_script.OnPlayerDisconnectFromTCP(0, "Leave");
return;
}
}else { WriteConsoleColor(new ColoredString(ConsoleColor.Red, String.Format("[Invalid Packet] User(ID:{0}) send a invalid Packet ({1})\n", "test", Packet))); }
问题是没有办法获取 OnPlayerDisconnectFromTCP(ID,reason);
的 ID希望你能理解并帮助我:)
谢谢!
【问题讨论】: