#include <head.h>
#define SER_PORT 6678 //服务器端口号
#define SER_IP "192.168.115.64"//服务器IP地址
#define CLI_PORT 6666 //客户端端口号
#define CLI_IP "192.168.115.93"
int main(int argc, const char *argv[])
{//1.创建套接字,用于连接使用int cfd=socket(AF_INET,SOCK_STREAM,0);if(cfd==-1){perror("socket error");return -1;}printf("cfd=%d\n",cfd);//设置端口号快速重用int reuse=1;if(setsockopt(cfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))==-1){perror("setsockopt error");return -1;}printf("端口快速重用成功\n");//2.给套接字绑定地址信息//2.1填充地址信息结构体struct sockaddr_in sin;sin.sin_family=AF_INET; //地址族sin.sin_port=htons(CLI_PORT);//端口号网络字节序sin.sin_addr.s_addr=inet_addr(CLI_IP);//IP地址网络字节序//2.2绑定工作if(bind(cfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("bind error");return -1;}printf("bind success _%d_\n",__LINE__);//3.连接服务器//3.1填充要连接的服务器地址信息结构体struct sockaddr_in cin;cin.sin_family=AF_INET;//IPV4通信cin.sin_port=htons(SER_PORT);//服务器端口号cin.sin_addr.s_addr=inet_addr(SER_IP);//服务器的主机地址//3.2连接服务器if(connect(cfd,(struct sockaddr*)&cin,sizeof(cin))==-1){perror("connect error");return -1;}printf("connect success _%d_\n",__LINE__);//4.收发数据char buf[5]={0xff,0x02,0x00,0,0xff};//用于接收要发送的char ch;//用于存储wasdwhile(1){//从终端获取输入的字符'w','a','s','d'scanf("%c",&ch);switch(ch){case 'w':{buf[3]++;buf[2]=0x00;if(buf[3]>90){buf[3]=0;continue;}break;} case 'a':{buf[3]--;buf[2]=0x01;if(buf[3]<0){buf[3]=90;continue;}break;} case 's':{buf[3]--;buf[2]=0x00;if(buf[3]<0){buf[3]=90;continue;}break;} case 'd':{ buf[3]++;buf[2]=0x01;if(buf[3]>180){buf[3]=0;continue;}break;} }//发送给服务器端if(send(cfd,buf,sizeof(buf),0)==-1){perror("send error");return -1;} }//5.关闭套接字close(cfd);return 0;
}