资源简介
这是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
相关资源
- uboot到linux logo显示不间断 补丁
- UNIX/LINUX编程实践教程的源码
- Linux任务管理器
- linux应用层的华容道游戏源代码
- 通信软件的具体实例──基于Socket的
- 用Socket编程实现FTP
- websocket实现一对一聊天
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- linux下用多进程同步方法解决生产者
- SOCKET 网络编程 计算机网络 作业 客户
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- linux 网络实验 ftp程序
- 用Socket写的简易FTP服务器和客户端
- Linux命令大全离线版&在线版
- 操作系统共享内存实验
- dos 下运行Linux 命令--gnu_utils
- linux 0.12内核源代码
- linux简易shell C实现
- linux实验报告及心得体会
- 基于GTK的Linux环境下的简易任务管理器
- socket小工具(可方便建立TCP UDP的soc
评论
共有 条评论