使用列表来连接和断开
这里我们有Connect();功能:使用列表来连接和断开
public static void Connect(string username, string password, string roomName, string roomType, string roomID, string roomPass, bool roomVisible)
{
Console.WriteLine("[Bot] Trying to login...");
PlayerIO.QuickConnect.SimpleConnect("everybody-edits-su9rn58o40itdbnw69plyw", username, password,
delegate(Client client)
{
Console.WriteLine("[Bot] Logged in. Trying to join the room...");
Dictionary<string, string> roomData = new Dictionary<string, string>();
Dictionary<string, string> joinData = new Dictionary<string, string>();
roomData.Add("editkey", roomPass);
roomData.Add("name", roomName);
joinData.Add("editkey", roomPass);
try
{
con = client.Multiplayer.CreateJoinRoom(roomID, roomType, roomVisible, roomData, joinData);
if (con.Connected)
{
con.Send("init");
con.Send("init2");
con.OnMessage += new MessageReceivedEventHandler(OnMessage);
con.OnDisconnect += delegate(object sender, string reason)
{
Console.WriteLine("Disconnected, Error: " + reason);
};
Console.WriteLine("[Bot] Joined the world.");
}
}
catch (PlayerIOError error)
{
Console.WriteLine("Error: " + error);
}
},
delegate(PlayerIOError error)
{
Console.WriteLine("Error: " + error);
});
}
最终目标是断开连接,而我的朋友告诉我这可以通过使用列表完成。我不熟悉列表,也不知道如何使用它们。
我在问的是把它放在'List'表格中,这样(我假设...)我们可以使用'Clear'方法来断开连接。或者可能是一个'删除'的方法。
但就像我说的,我不确定如何使用列表,所以Clear方法可能意味着完全不同的东西。
请问您是否需要了解更多关于此功能的信息,我会尽快回复。但是从我列出的模糊信息来看,你不需要知道函数的每个细节。
你的朋友试图说的是,你需要维护一个连接列表。列表仅仅是一个维护你的引用的对象。
完成所有连接后,您可以通过列表并“注销”或以其他方式断开与这些通道的连接。
啊,好的。在这种情况下,应该很容易(一旦我了解了一些关于清单的更多信息......)并且更加有组织。 你会碰巧知道什么会更适合断开:删除或清除? – 2012-02-03 22:34:24
删除会更合适。因为对于一个列表结构时使用类似...
list.Clear()//这将清除整个列表
如果你只是切断一个客户端,你不想删除所有客户,只有一个。
list.RemoveAt(int index)或list.Remove(Object o)只会从您的列表中删除特定的客户端。
这里是一个链接,可能会有帮助:
哈,大家来编辑。我似乎无法逃避那场比赛。 – Zenexer 2012-02-04 03:52:54