有瑕疵 但是可以运行
#include <myhand.h>
#define CLIP "192.168.246.135"
#define CLIPORT 9999
#define SERIP "192.168.182.1"
#define SERIPORT 8888
int main(int argc, const char *argv[])
{
//创建用于通信的套接字
int cfd =socket(AF_INET,SOCK_STREAM,0);
if(cfd==-1)
{
perror("socket 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(SERIPORT);
sin.sin_addr.s_addr =inet_addr(SERIP);
//连接服务器
if(connect(cfd,(struct sockaddr*)&sin,sizeof(sin))==-1)
{
perror("connect error \n");
return -1;
}
//定义手臂
char ruf[]={0xff,0x02,0x00,0x1e,0xff};
char buf[]={0xff,0x02,0x01,0x1e,0xff};
send(cfd,ruf,sizeof(ruf),0);
send(cfd,buf,sizeof(buf),0);
while(1)
{
char n;
printf("please 'w a s d'\n");
scanf("%c",&n);
getchar();
switch(n)
{
case 'w':{ruf[3]+=15;send(cfd,ruf,sizeof(ruf),0);
}break;
case 's':{ruf[3]-=15;send(cfd,ruf,sizeof(ruf),0);
}break;
case 'a':{buf[3]-=15;send(cfd,buf,sizeof(buf),0);
}break;
case 'd':{buf[3]+=15;send(cfd,buf,sizeof(buf),0);
}break;
default:break;
}
}
close(cfd);
return 0;
}