#define SER_PORT 8888
#define SER_IP "192.168.31.154"
#define CLI_PORT 6666
#define CLI_IP "192.168.31.154"
#include <header.h>
int main(int argc, const char *argv[])
{
//创建用于通信的套接字文件描述符
int cfd = socket(AF_INET, SOCK_STREAM, 0);
if(cfd == -1){
perror("socket err");
return -1;
}
printf("cfd = %d\n", cfd);
//绑定IP地址和端口号
//填充客户端地址信息结构体
struct sockaddr_in cin;
cin.sin_family = AF_INET;
cin.sin_port = htons(CLI_PORT);
cin.sin_addr.s_addr = inet_addr(CLI_IP);
//绑定IP地址和端口号
if( bind( cfd, (struct sockaddr*)&cin, sizeof(cin)) == -1 ){
perror("bind-error");
return -1;
}
printf("bind-success\n");
//连接服务器
//准备对端地址信息结构体
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 error");
return -1;
}
printf("connect sccess\n");
char red_rot[5]={0xff,0x02,0x00,0x00,0xff};
unsigned char blue_rot[5]={0xff,0x02,0x01,0x00,0xff};
//初始化红色机械臂
if( send(cfd,red_rot,strlen(red_rot),0) == -1 ){
perror("red-send-error");
return -1;
}
//初始化蓝色机械臂
if( send(cfd,blue_rot,strlen(blue_rot),0) == -1 ){
perror("blue-send-error");
return -1;
}
printf("初始化成功\n");
//打开键盘事件所在文件
int fd = open("/dev/input/event1", O_RDONLY);
if(fd == -1){
perror("open error");
return -1
}
//准备读取数据的结构体变量
struct input_event input;
//数据收发
while(1){
//从键盘文件中读取数据
read(fd, &input,sizeof(input));
//输出读取出来的数据
printf("type:%hd, code, value:%d", input.type, input.code, input.value);
switch(input.value*input.code){
case17:
{
rbuf[3] += 2;
if(rbuf[3] >= 90)
{
rbuf[3] = 90;
}
//将数据发送给服务器
send(cfd, rbuf, sizeof(rbuf), 0);
}
break;
}
}
//关闭套接字
close(cfd);
return 0;
}
TCP机械臂测试
最新推荐文章于 2024-07-14 14:55:20 发布