1.机械臂
#include <myhead.h>
#define SERIP "192.168.125.174"
#define SERPORT 8888
#define CLIIP "192.168.115.72"
#define CLIPORT 9999
int main(int argc, const char *argv[])
{
//创建客户端用于通信的套接字
int cfd=socket(AF_INET,SOCK_STREAM,0);
if(cfd==-1)
{
perror("socket error");
return -1;
}
//设置端口快速重用
int reause=1;
if(setsockopt(cfd,SOL_SOCKET,SO_REUSEADDR,&reause,sizeof(reause))==-1)
{
perror("reuase error");
return -1;
}
//填充地址信息结构体
struct sockaddr_in cin;
cin.sin_family=AF_INET;
cin.sin_port=htons(CLIPORT);
cin.sin_addr.s_addr=inet_addr(CLIIP);
//绑定
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;
}
//定义要发送的数组
char arr[5]={arr[0]=0xff,arr[1]=0x02,arr[2]=0x00,arr[3]=0,arr[4]=0xff};
char arr1[5]={arr1[0]=0xff,arr1[1]=0x02,arr1[2]=0x01,arr1[3]=0,arr1[4]=0xff};
while(1)
{
//获取终端输入并对比后发送之服务器
char n=fgetc(stdin);
if(n=='w')
{
arr[3]+=5;
send(cfd,arr,sizeof(arr),0);
send(cfd,arr1,sizeof(arr1),0);
}else if(n=='s')
{
arr[3]-=5;
send(cfd,arr,sizeof(arr),0);
send(cfd,arr1,sizeof(arr1),0);
}else if(n=='d')
{
arr1[3]+=5;
send(cfd,arr1,sizeof(arr1),0);
send(cfd,arr,sizeof(arr),0);
}else if(n=='a')
{
arr1[3]-=5;
send(cfd,arr1,sizeof(arr1),0);
send(cfd,arr,sizeof(arr),0);
}
}
//关闭客户端
close(cfd);
return 0;
}
2.思维导图