private void listening_thread() { while (true) { Byte[] arr_data = new Byte[BUFSIZ]; Dictionary <String, String> dict; try { server_socket.Receive(arr_data); } catch (SocketException) { MessageBoxBase.Show("服务器掉线了!"); Application.Exit(); } try { dict = DataEncoding.get_dictionary(arr_data); } catch (DataEncodingException e) { MessageBoxBase.Show(e.Message); Application.Exit(); break; } switch (dict["identifier"]) { default: throw new DataEncodingException("Invalid identifier."); case "lobby_ready": check_ready_request(dict); break; case "lobby_chessmove": check_chessmove_request(dict); break; case "lobby_gamestart": check_gamestart_request(dict); break; case "lobby_draw": check_draw_request(dict); break; case "lobby_gameend": check_gameend_request(dict); break; case "lobby_exit": MessageBoxBase.Show("你的对手已经退出了房间. 即将关闭房间.", "对手退出房间"); this.Close(); break; } } }
private void check_draw_request(Dictionary <String, String> dict) { String message = dict["message"]; switch (message) { // TODO case "draw": MessageBoxBase.Show("对方提和, 请问您是否接受?"); break; } }
private void button_draw_Click(object sender, EventArgs e) { MessageBoxBase.Show("敬请期待求和功能."); /* * server_socket.Send(new Dictionary<String, String>() * { * ["identifier"] = "lobby_draw", * ["message"] = "draw" * }); * button_draw.Enabled = false; */ }