资源简介
这是linux下的双人弹球游戏。分服务器端和客户端。基于socket通信。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LEFT 0
#define RIGHT (COLS-1)
#define TOP 1
#define BOTTOM (LINES-1-2)
#define WIDE RIGHT-LEFT+1
#define BOARD_LENGTH 10
#define TOTAL 3
char BALL= ‘O‘;
char BLANK= ‘ ‘;
int hdir;
int vdir;
int pos_X ;
int pos_Y;
int p1p2;
int in_win;
int in_lose;
int left_board;
int right_board;
int d_left_board;
int d_right_board;
int is_lose=0;
int is_win=0;
int rsize;
int sock;
int delay=100;
int ndelay;
void moveBall();
struct winsize size;
int listenfd connfd;
int n;
struct sockaddr_in servaddr = {0};
char rbuf[128];
char wbuf[128] = “hello client“;
void control();
void sent_pos();
void lose();
void win();
FILE *fp;
int main(int argcchar **argv)
{
fp=fopen(“res.txt““w“);
ioctl(STDIN_FILENO TIOCGWINSZ &size);
char wbuf[] = “hello server“;
char rbuf[128];
int i;
p1=0;
p2=0;
struct sockaddr_in server = {0};
struct timeval timeo;
char cmd[200];
timeo.tv_sec = 0;
timeo.tv_usec = 1000 * 1000; //
socklen_t len = sizeof(timeo);
if( argc != 2)
{
printf(“usage: ./client \n“);
return -1;
}
sock = socket(AF_INET SOCK_STREAM 0);
if(sock < 0)
{
perror(“Create TCP Socket“);
return -1;
}
setsockopt(sock SOL_SOCKET SO_SNDTIMEO &timeo len);
server.sin_family = AF_INET;
server.sin_port = htons(30000);
inet_pton(AF_INET argv[1] &(server.sin_addr));
int res = connect(sock (struct sockaddr*)&server sizeof(server));
if (res < 0)
{
if(res == EINPROGRESS)
perror(“connecting stream socket time out:“);
else
perror(“connecting stream socket error:“);
close(sock);
return -1;
}
else
{
printf(“Connect Server@%s\n“argv[1]);
//for(i=0;i<100;i++)
//{
strcpy(wbuf“got“);
int wsize = send(sockwbufsizeof(wbuf)0);
if(wsize<=0)
{
perror(“write error:“);
close(sock);
return -1;
}
//printf(“1111111i=%d\n“i);
rsize=recv(sockrbufsizeof(rbuf)0);
if(rsize>0)
{
rbuf[rsize]=‘\0‘;
//printf(“recv msg from server: %s\n“rbuf);
//sprintf(cmd “%s“ rbuf);
//system(cmd);
if (rbuf[0]==‘s‘)
{
initscr();
crmode();
noecho();
control();
endwin();
}
}
if(rsize<0)
{
close(sock);
perror(“read error:“);
return -1;
}
//}
close(sock); fclose(fp);
return 0;
}
}
void init(){
int ij;
in_win=0;
in_lose=0;
clear();
//init ball
pos_X =size.ws_col-(0.5*COLS+1);
pos_Y =size.ws_row-(0.5*size.ws_row+1);
hdir=-1;
vdir=1;
//init board
left_board=0.5*COLS-1-0.5*BOARD_LENGTH;
right_board=left_board+BOARD_LENGTH-1;
for(i=left_board;i<=right_board;i++){
move(BOTTOMi);
addch(‘=‘);
}
d_left_board=0.5*
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-11-22 03:05 netBallGame_1\
文件 20101 2011-11-22 03:58 netBallGame_1\c2
文件 12697 2011-11-15 07:56 netBallGame_1\c2.c
文件 481 2011-12-09 00:22 netBallGame_1\ReadMe.txt
文件 20312 2011-11-22 04:00 netBallGame_1\s2
文件 12249 2011-11-22 04:00 netBallGame_1\s2.c
相关资源
- linux网络聊天室
- 使用RTMPdump(libRTMP)直播来自v4l2的摄
- Linux+man中文手册
- 计算机网络socket编程实验
- Linux典藏大系之Linux系统移植第2版
- 嵌入式系统设计与应用 基于ARM Cort
- linux_syscall_support.h_2016/12/20
- Linux中nginx安装相关资源包
- Linux驱动模块单独编译Makefile
- Linux 进程控制与进程互斥附实验报告
- linux下socket can 编程详解
- 嵌入式Linux驱动开发基础总结
- DES 纯c实现(des.c和des.h) 含pkcs1填充
- Linux基础教程.ppt
- FANUC机器人Socket Message通讯设置及使用
-
Jli
nk_Linux_V422.zip - Atollic_TrueSTUDIO_for_STM32_v9.0.1_20180420-1
- 安装linux后的mbr修复工具(含64位)
- 动手做一个迷你型Linux操作系统
- Linux安装weblogic12详细步骤
- ncompress-4.2.4-54.el6_2.1.x86_64.rpm
- MT7601(小度wifi360wifimiwif) staap linux驱
- Delphi简单实现局域网远程开机
- 《嵌入式Linux系统开发标准教程》第
- 易语言websocket服务器源码
- 基于Linux LQL流量控制系统的研究与实
- linux c 使用openssl实现SHA1WithRSA实现,签
- USB8152linux系统驱动包
- jpeglib读取jpeg,转为bmp图,24真彩和灰
- 北大青鸟Linux培训教材(完全版)LS
评论
共有 条评论