广播网络
组播网络
机械臂操作
#include <myinclude.h>
#define SER_IP "192.168.125.223"
#define SER_PORT 8888
int main(int argc, const char *argv[])
{
//1.设置套接字
int cfd=socket(AF_INET,SOCK_STREAM,0);
if(cfd==-1){
perror("socket");
return -1;
}
printf("socket success\n");
//设置端口号快速重用
int reuse=1;
if(setsockopt(cfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))==-1){
perror("setsockopt error");
return -1;
}
//2.绑定IP端口号
//3.申请连接
struct sockaddr_in sin;
sin.sin_family=AF_INET;
sin.sin_port=htons(SER_PORT);
sin.sin_addr.s_addr=inet_addr(SER_IP);
if(connect(cfd,(struct sockaddr*)&sin,sizeof(sin))==-1){
perror("connect");
return -1;
}
printf("connect success\n");
//4.数据交互
char rbuf[5]={0xff,0x02,0x00,0x00,0xff};
unsigned char bbuf[5]={0xff,0x02,0x01,0x00,0xff};
printf("使用 a w s d 操控机械臂移动\n");
char ch;
while(1){
scanf("%c",&ch);
while(getchar()!=10);
switch(ch){ //判断输入的字符做出相应的行为
case 'w':if(rbuf[3]<(char)0x5A){
rbuf[3]++;
}
break;
case 's':if(rbuf[3]>(char)0xA6){
rbuf[3]--;
}
break;
case 'a':if(bbuf[3]>(unsigned char)0x00){
bbuf[3]--;
}
break;
case 'd':if(bbuf[3]<(unsigned char)0xB4){
bbuf[3]++;
}
break;
default:
break;
} //将执行结果传输到机械臂内
sendto(cfd,rbuf,sizeof(rbuf),0,(struct sockaddr*)&sin,sizeof(sin));
sendto(cfd,bbuf,sizeof(bbuf),0,(struct sockaddr*)&sin,sizeof(sin));
}
//5.关闭客户端
close(cfd);
return 0;
}