Final project of Network Programming in HUST
A Caro Game Online using winsock
THUYET LUONG NGOC
TUAN NGUYEN MINH
ANH NGUYEN HONG
Opcode<2byte> | Content | \r\n |
---|
90 | OpCode yêu cầu | Trạng thái lỗi | Nội dung | \r\n |
---|
Ví dụ
90 | OpCode yêu cầu | Trạng thái lỗi | Nội dung | \r\n |
---|---|---|---|---|
90 | 10 | 0 | \r\n |
Command | OpCode | Use By |
---|---|---|
REQ_LOGIN | 10 | Client |
Command | ResponseCode | Use By |
---|---|---|
RES_LOGIN_SUCCESSFUL | 100 | Server |
RES_LOGIN_FAIL | 101 | Server |
RES_LOGIN_FAIL_LOCKED | 102 | Server |
RES_LOGIN_FAIL_WRONG_PASS | 103 | Server |
RES_LOGIN_FAIL_NOT_EXIST | 104 | Server |
RES_LOGIN_FAIL_ANOTHER_DEVICE | 105 | Server |
RES_LOGIN_FAIL_ALREADY_LOGIN | 106 | Server |
Command | OpCode | Use By |
---|---|---|
REQ_LOGOUT | 11 | Client |
Command | ResponseCode | Use By |
---|---|---|
RES_LOGOUT_SUCCESSFUL | 110 | Server |
RES_LOGOUT_FAIL | 111 | Server |
Command | OpCode | Use By |
---|---|---|
REQ_REGISTER | 12 | Client |
Command | ResponseCode | Use By |
---|---|---|
RES_REGISTER_SUCCESSFUL | 120 | Server |
RES_REGISTER_FAIL | 121 | Server |
Command | OpCode | Use By |
---|---|---|
REQ_GET_LIST | 20 | Client |
Command | ResponseCode | Use By |
---|---|---|
RES_GET_LIST_SUCCESSFUL | 200 | Server |
RES_GET_LIST_FAIL | 201 | Server |
Command | OpCode | Use By |
---|---|---|
REQ_ADD_FRIEND | 21 | Client |
Command | ResponseCode | Use By |
---|---|---|
RES_ADD_FRIEND_SUCCESSFUL | 210 | Server |
RES_ADD_FRIEND_FAIL | 211 | Server |
Command | OpCode | Use By |
---|---|---|
REQ_SEND_CHALLENGE | 22 | Client |
Command | ResponseCode | Use By |
---|---|---|
RES_SEND_CHALLENGE_SUCCESSFUL | 220 | Server |
RES_SEND_CHALLENGE_FAIL | 221 | Server |
Command | OpCode | Use By |
---|---|---|
REQ_STOP_MATCH | 31 | Client |
Command | ResponseCode | Use By |
---|---|---|
RES_STOP_MATCH_SUCCESSFUL | 310 | |
RES_STOP_MATCH_FAIL | 311 |
Command | OpCode | Use By |
---|---|---|
REQ_PLAY | 32 | Client |
Command | ResponseCode | Use By |
---|---|---|
RES_PLAY_SUCCESSFUL | 320 | |
RES_PLAY_FAIL | 321 |
Command | OpCode | Use By |
---|---|---|
REQ_GET_LOG | 40 | Client |
Command | ResponseCode | Use By |
---|---|---|
RES_GET_LOG_SUCCESSFUL | 400 | |
RES_GET_LOG_FAIL | 401 |
Command | OpCode | Use By |
---|---|---|
REQ_CHAT | 80 | Client |
Command | ResponseCode | Use By |
---|---|---|
RES_CHAT_SUCCESSFUL | 800 | |
RES_CHAT_FAIL | 801 |
Command | OpCode | Use By |
---|---|---|
SERVER_SEND_LIST | 29 | Server |
Command | OpCode | Use By |
---|---|---|
SERVER_SEND_CHALLENGE | 28 | Server |
Command | ResponseCode | Use By |
---|---|---|
REQ_ACCEPT_CHALLENGE | 280 | Client |
REQ_DENY_CHALLENGE | 281 | Client |
Command | OpCode | Use By |
---|---|---|
SERVER_SEND_CHALLENGE_ACCEPTED | 23 | Server |
SERVER_SEND_CHALLENGE_DENIED | 24 | Server |
Command | OpCode | Use By |
---|---|---|
SERVER_START_GAME | 30 | Server |
Command | OpCode | Use By |
---|---|---|
SERVER_SEND_PLAY | 39 | Server |
Command | OpCode | Use By |
---|---|---|
SERVER_SEND_RESULT | 70 | Server |
Command | OpCode | Use By |
---|---|---|
SERVER_SEND_CHAT | 890 | Server |
Game có các chức năng:__
- Đăng nhập
- Đăng kí
- Đăng xuất
- Hiện danh sách người chơi
- Gửi lời mời kết bạn
- Chơi game
- Client sẽ gửi thông điệp request REQ_LOGIN
- Server xử lý và gửi lại một trong các thông điệp:
- RES_LOGIN_SUCCESSFUL
- RES_LOGIN_FAIL
- RES_LOGIN_FAIL_LOCKED
- RES_LOGIN_FAIL_WRONG_PASS
- RES_LOGIN_FAIL_NOT_EXIST
- RES_LOGIN_FAIL_ANOTHER_DEVICE
- RES_LOGIN_FAIL_ALREADY_LOGIN
- Client sẽ gửi thông điệp request REQ_REGISTER
- Server xử lý và gửi lại một trong các thông điệp:
- RES_REGISTER_SUCCESSFUL
- RES_REGISTER_FAIL
- Client sẽ gửi thông điệp request REQ_LOGOUT
- Server xử lý và gửi lại một trong các thông điệp:
- RES_LOGOUT_SUCCESSFUL
- RES_LOGOUT_FAIL
- Sau khi đăng nhập thành công, client sẽ gửi thông điệp REQ_GET_LIST server
- Server xử lý và gửi lại một trong các thông điệp:
- RES_GET_LIST_SUCCESSFUL
- RES_GET_LIST_FAIL
- Client có thể lấy danh sách bằng lệnh SERVER_SEND_LIST từ server
- Client có thể yêu cầu kết bạn bằng request REQ_ADD_FRIEND
- Server xử lý và gửi lại một trong các thông điệp:
- RES_ADD_FRIEND_SUCCESSFUL
- RES_ADD_FRIEND_FAIL
- Client1 gửi yêu cầu thách đấu đến một đối thủ bằng request REQ_CHALLENGE
- Server sẽ gửi yêu cầu chấp nhận thách đấu đến Client2 bằng request SERVER_SEND_CHALLENGE
- Client2 sẽ thông điệp trả lời có hoặc không:
- REQ_ACCEPCT_CHALLENGE
- REQ_DENY_CHALLENGE
- Sau đó Server sẽ gửi broadcast đến Client1 với thông điệp tuỳ thuộc vào Client trả lời thế nào:
- SERVER_SEND_CHALLENGE_ACCEPTED
- SERVER_SEND_CHALLENGE_DENIED
- Nếu cả hai đồng ý, Server tiến hành gửi broad cast SERVER_SEND_START_GAME
- Hai bên tiến hành chơi và gửi các thông điệp REQ_PLAY
- Server sẽ xử lý, gửi lại broad cast cho 2 bên tham gia SERVER_SEND_PLAY
- Nếu game kết thúc hoặc client gửi yêu cầu dừng game REQ_STOP_MATCH, server sẽ gửi kết quả SERVER_SEND_RESULT