public void socketListener() { if (mySocket != null) { while (true) { int n = mySocket.Available; if (n > 0) { byte[] bArr = new byte[n]; mySocket.Receive(bArr); string pkg = Encoding.Default.GetString(bArr); if (pkg.Contains(',')) { string[] msg = pkg.Split(','); packet = new PacketInfo(msg[0], msg[1], msg[2], msg[3], msg[4]); } string str = packet.getMessage(pkg); if (str == "gamestart") { //timer1.Enabled = true; //timer1.Start(); t.Start(); } if (str == "lose") { t.Stop(); MessageBox.Show("당신이 이겼습니다."); } } } } }
void ReadProcess() { while (true) { int n = player.Available; if (n > 0) { byte[] ba = new byte[n]; player.Receive(ba); //socket이름 player string pkt = Encoding.Default.GetString(ba); // 이부분 수정 필요----------------------------------------> 서버에서 받은 msg // 이부분 수정 필요----------------------------게임 시작 시작 시, (1) 클->서버 "gamestart" // 이부분 수정 필요----------------------------게임 시작 시작 시, (2) 서버->클 "gamestart/상대id/문제정답" // 이부분 수정 필요----------------------------게임 중간, 클->서버 "false(또는 true)" ==> 해당 클이 winner인지 // 이부분 수정 필요-------게임 중간, 서버는 두 클의 isWinner가 true인거 하나라도 있으면 // 서버->클 "gameend/true(false)"-> 상대방isWinner인지 패킷 전송 / isWinner=true인 클에게 money추가 // 이부분 수정 필요-------게임 중간, 두 클 모두 isWinner=false면 "continue" if (msg_room == null) { msg_room = pi.getRoom(pkt); } string msg = pi.getMessage(pkt); if (msg.StartsWith("true") || msg.StartsWith("false")) // 게임 도중인 경우 { endGame(msg); } else { // gamestart받는 경우 string numb = pi.getNumber(pkt); if (msg.StartsWith("gamestart")) { startGame(numb); } nextRound(); } } } }