资源简介
game.cpp
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define J 11
#define Q 12
#define K 13
#define A 14
char action_msg[10];
int b=0;//四张同色的小标
int num0=0; //0的个数
int search0[3];//应该作为全局变量,或放到turn,river的头文件中
int m_socket_id=-1;
typedef struct
{
char position;
int pid;
int jetton;
int money;
} poker_seat;
poker_seat seat[8]my_seatplayer_seat;
typedef struct
{
int pid;
int jetton;
int money;
int bet;
char poker_action[10];
} poker_inquire;//CS发过来的牌手信息
poker_inquire poker[8];
poker_inquire *person;
typedef struct
{
char color[9];
int point;
}puke;
char flag;
char action[20]={‘\0‘};
puke card[7];
char *t=action;//t是指向action的指针
int response(int my_idpoker_inquire poker[7]);
int msg_tiqu(char *msg_recv);
void hold_card();
void flop();
void turn();
void river();
int check_poker(puke Poke[]);
int msg_tiqu(char *msg_recv);
void erase_char(string &strchar p);
int response(int my_idpoker_inquire poker[7]);
/* 处理server的消息 */
int on_server_message(int length const char* buffer)
{
printf(“Recieve Data From Server(%s)\n“ buffer);
return 0;
}
int main(int argc char *argv[])
{
if (argc != 6)
{
printf(“Usage: ./%s server_ip server_port my_ip my_port my_id\n“ argv[0]);
return -1;
}
in_addr_t server_ip = inet_addr(argv[1]);//其中 192.168.0.1 是牌桌程序IP
in_port_t server_port = htons(atoi(argv[2]));//1024 是牌桌程序端口号
//htons():主机字节顺序转换为网络字节顺序(对无符号短型进行操作 4 bytes)
in_addr_t my_ip = inet_addr(argv[3]);//其中 192.168.0.2 是牌手程序绑定的IP
in_port_t my_port = htons(atoi(argv[4]));//2048是牌手程序绑定的端口号
int my_id = atoi(argv[5]);//其中 6001 是用来向牌桌注册的ID
/* 创建socket */
m_socket_id = socket(AF_INET SOCK_STREAM 0);
if(m_socket_id < 0)/* 如果发生错误,socket()函数返回 – 1 */
{
printf(“init socket failed!\n“);
return -1;
}
int is_reuse_addr = 1;
setsockopt(m_socket_id SOL_SOCKET SO_REUSEADDR (const char*)&is_reuse_addr sizeof(is_reuse_addr));
struct sockaddr_in my_addr;
bzero(&my_addr sizeof(my_addr));//把 sin_zero 全部设成零值
my_addr.sin_family = AF_INET;
my_addr.sin_addr.s_addr = my_ip;
my_addr.sin_port = my_port;
//当你使用socket()函数得到一个套接字描述符你也许需要将 socket绑定上一个你的机器上的端口。
if(bind(m_socket_id (struct sockaddr*)&my_addr sizeof(my_addr)))
{
printf(“bind failed!\n“);
return -1;
}
/* 连接server */
struct sockaddr_in server_addr;
bzero(&server_addr sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = server_ip;
server_addr.sin_port = server_port;
while(connect(m_socket_id (struct sockaddr*)&server_addr sizeof(server_addr)) < 0)
{
usleep(100*1000); /* sleep 100ms 然后重试,保证无论server先起还是后起,都不会有问题 */
}//usleep功能把进程挂起一段时间单位是微秒; sleep()里面的单位是秒,而不是毫秒
/* 向server注册 */
char reg_msg[50] = {‘\0‘};
//若成功则返回欲写入的字符串长度,若出错则返回负值
//player向server注册自己
- 上一篇:公司员工信息管理系统c语言实现
- 下一篇:c++线性方程组求解源代码 原创
相关资源
- C语言编程常见问题解答.pdf
- 《Linux程序设计》第四版pdf高清电子版
- C++ Primer mobi
- 使用 IBM Rational Systems Developer 和 Rati
- VC编程助手2010破解版(原名VA_X_10.6.
- Linux操作系统下C语言编程从零开始
- 一个C++实现的源代码行数统计工具
- easySize使用方法和代码
- TLV解析算法
- C++ 从入门到精通明日科技光盘 百度云
- C和C++.rar
- consts.cpp
- 银行管理系统.cpp
- VC++外挂框架.rar
- VisualC++网络高级编程.(人民邮电.陈坚
- C++黑客编程揭秘与防范.pdf
- BombGoldFlower.cpp
- c++万能外挂.txt
- ZhajingHua.cpp
- C++AMP.pdf
- c++程序设计语言英文第三版.pdf
- Visual_assist_X_for_VC6.0破解版.rar
- 《C语言程序设计》谭浩强.pdf
- c++辅助源码.rar
- GBT28169-2011嵌入式软件C语言编码规范
- 用MFC实现的图像处理源代码总集
- C语言程序设计(郑莉)源码.rar
- zw_MFC编写一个简单的登录对话框(连
- 鸡啄米:VS2010MFC编程入门教程.pdf
- ATM源代码用c++文件读写.zip
评论
共有 条评论