思维导图

TCP机械臂控制
#include<myhead.h>
#define SER_IP "172.20.10.8" //服务器ip地址 写我的win地址
#define SER_PORT 8888 //服务器端口号
#define CIL_IP "172.20.10.3" //客户端ip地址 写ubuntu的win地址
#define CIL_PORT 7777 //客户端口号
int main()
{
//1.创建用于通信的套接子文件描述符
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;
}
//2.给客户端套接字 绑定ip地址和端口号
//2.1填充地址信息结构体
struct sockaddr_in cin;
cin.sin_family = AF_INET;
cin.sin_addr.s_addr=inet_addr(CIL_IP);
cin.sin_port = htons(CIL_PORT);
//2.2绑定
if(bind(cfd,(struct sockaddr*)&cin,sizeof(cin))==-1)
{
perror("bind error");
return -1;
}
//3.连接服务器
//3.1组装对端地址信息结构体
struct sockaddr_in sin;
sin.sin_family = AF_INET; //通信域
sin.sin_addr.s_addr = inet_addr(SER_IP);//要连接的服务器ip
sin.sin_port = htons(SER_PORT);//服务器的端口号
//3.2连接操作
if(connect(cfd,(struct sockaddr*)&sin,sizeof(sin))==-1)
{
perror("connect error");
return -1;
}
char rbuf[5] = {0xff,0x02,0x00,0xff}; //红色臂初始位置
unsigned char bbuf[5]={0xff,0x02,0x01,0xff};//蓝色臂初始位置
//将上面的数据分别发送给服务器
send(cfd,rbuf,sizeof(rbuf),0);
send(cfd,bbuf,sizeof(bbuf),0);
//4.数据通信
char buf[128]="";//应该是 往buff里输入wasd ,进行判断
while(1)
{
//要回顾一些io
//不太回 回忆不起来
printf("输入移动:");
scanf("%s",&buf);
if(strcmp(buf,"w")==0)
{
rbuf[3]+=2;//然后在这个循环里面改变 rbuf和bbuf的
//再把位置信息发送到机械臂
}
}
//5.关闭套接字
close(cfd);
return 0;
}
UDP文件传输
没写出来 状态不佳 明天继续吧