1 private void ReceiveData(object obj)
2 {
3 //省略接受客户端协议代码
4
5 //拆分接受到的协议 格式: 命令,参数1,参数2 .
6 string[] splitString = receiveString.Split(',');
7 string sendString = "";
8 int tableIndex = -1; //桌号
9 int side = -1; //座位号
10 int anotherSide = -1; //对方座位号
11
12 switch (splitString[0])
13 {
14 case "Login":
15 //省略部分
16 break;
17 case "SitDown":
18 tableIndex = int.Parse(splitString[1]);
19 side = int.Parse(splitString[2]);
20 gameTable[tableIndex].gamePlayer[side].user = user;
21 gameTable[tableIndex].gamePlayer[side].someone = true;
22 service.SetListBox(string.Format(
23 "{0}在第{1}桌第{2}座入座", user.userName, tableIndex + 1, side + 1));
24 //得到对家座位号
25 anotherSide = (side + 1) % 2;
26 //判断对方是否有人
27 if (gameTable[tableIndex].gamePlayer[anotherSide].someone)
28 {
29 //先告诉该用户对家已经入座
30 //发送格式:SitDown,座位号,用户名
31 sendString = string.Format("SitDown,{0},{1}", anotherSide,
32 gameTable[tableIndex].gamePlayer[anotherSide].user.userName);
33 service.SendToOne(user, sendString);
34 }
35 //同时告诉两个用户该用户入座(也可能对方无人)
36 //发送格式:SitDown,座位号,用户名
37 sendString = string.Format("SitDown,{0},{1}", side, user.userName);
38 service.SendToBoth(gameTable[tableIndex], sendString);
39 //重新将游戏室各桌情况发送给所有用户
40 service.SendToAll(userList, "Tables," + this.GetOnlineString());
41 break;
42 default:
43 break;
44 }
45 }
46