#include <myhead.h>
#define SERPORT 8888
#define SERIP "192.168.125.45"
#define CLIPORT 6666
#define CLIP "192.168.125.92"
int main(int argc, const char *argv[])
{
int cfd=-1;
if((cfd=socket(AF_INET,SOCK_STREAM,0))==-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;
}
struct sockaddr_in cin;
cin.sin_family=AF_INET;
cin.sin_port=htons(CLIPORT);
cin.sin_addr.s_addr=inet_addr(CLIP);
if(bind(cfd,(struct sockaddr*)&cin,sizeof(cin))==-1)
{
perror("bind 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");
char rbuf[5]={0xff,0x02,0x00,0x00,0xff};
unsigned char lbuf[5]={0xff,0x02,0x01,0x00,0xff};
char value;
while(1)
{
printf("请输入>>>");
value=getchar();
getchar();
switch(value)
{
case 'W':
case 'w':
{
printf("%c\n",value);
rbuf[3]+=5;
if(rbuf[3]>=90)
{
rbuf[3]=90;
}
send(cfd,rbuf,sizeof(rbuf),0);
}
break;
case 'S':
case 's':
{
printf("%c\n",value);
rbuf[3]-=5;
if(rbuf[3]<=-90)
{
rbuf[3]=-90;
}
send(cfd,rbuf,sizeof(rbuf),0);
}
break;
case 'A':
case 'a':
{
printf("%c\n",value);
lbuf[3]+=5;
if(lbuf[3]>=180)
{
lbuf[3]=180;
}
send(cfd,lbuf,sizeof(lbuf),0);
}
break;
case 'D':
case 'd':
{
printf("%c\n",value);
lbuf[3]-=5;
if(lbuf[3]<=0)
{
lbuf[3]=0;
}
send(cfd,lbuf,sizeof(lbuf),0);
}
break;
default:
{
printf("请重新输入\n");
break;
}
}
}
close(cfd);
return 0;
}
12-18
于 2023-12-18 20:48:36 首次发布