#include <myhead.h>
#define SERPORT 8888
#define SERIP "192.168.115.164"
int main(int argc, const char *argv[])
{
//创建用于通信的套接字
int cfd=socket(AF_INET,SOCK_STREAM,0);
if(cfd==-1)
{
perror("socket error");
return -1;
}
//设置端口号快速重用
int reuse=1;
if(setsockopt(cfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))==-1)
{
perror("setsockopt error");
return -1;
}
//连接服务器
//填充服务器地址信息结构体
struct sockaddr_in sin;
sin.sin_family=AF_INET;
sin.sin_port=htons(SERPORT);
sin.sin_addr.s_addr=inet_addr(SERIP);
if((connect(cfd,(struct sockaddr *)&sin,sizeof(sin)))==-1)
{
perror("connect error");
return -1;
}
printf("connect success\n");
//收发数据
unsigned char buf[5]={0xff,0x02,0x00,0x00,0xff};
send(cfd,buf,sizeof(buf),0);
char rbuf[5]={0xff,0x02,0x01,0xa6,0xff};
send(cfd,rbuf,sizeof(rbuf),0);
char a;
while(1)
{
a=getchar();
getchar();
//将数据发送给服务器
switch(a)
{
case 'w':
{
buf[3] += 2;
if(buf[3] >= 90)
{
buf[3] = 90;
}
//发送给服务器
if(send(cfd, buf, sizeof(buf), 0) == -1)
{
perror("send error");
return -1;
}
}
break;
case 's':
{
buf[3] -= 2;
if(buf[3] >= 90)
{
buf[3] = 90;
}
//发送给服务器
if(send(cfd, buf, sizeof(buf), 0) == -1)
{
perror("send error");
return -1;
}
}
break;
case 'd':
{
rbuf[3] += 2;
if(rbuf[3] >= 90)
{
rbuf[3] = 90;
}
//发送给服务器
if(send(cfd, rbuf, sizeof(rbuf), 0) == -1)
{
perror("send error");
return -1;
}
}
break;
case 'a':
{
rbuf[3] -= 2;
if(rbuf[3] >= 90)
{
rbuf[3] = 90;
}
//发送给服务器
if(send(cfd, rbuf, sizeof(rbuf), 0) == -1)
{
perror("send error");
return -1;
}
}
break;
}
}
//关闭套接字
close(cfd);
return 0;
}
11.17作业
最新推荐文章于 2024-09-02 22:30:41 发布