TCP呆板臂测试

[复制链接]
发表于 2026-2-9 00:37:14 | 显示全部楼层 |阅读模式
通过w(赤色臂角度增大)s(赤色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制呆板臂
注意:关闭盘算机的杀毒软件,电脑管家,防火墙
1)基于TCP服务器的呆板臂,端标语是8888,ip是Windows的ip;
查察Windows的IP:按住Windows+r按键,输入cmd,输入ipconfig
2)点击软件中的开启监听;
3)呆板臂须要发送16进制数,共5个字节。
  1. #include<myhead.h>
  2. #define SER_PORT 8888 //与服务器保持一致
  3. #define SER_IP "192.168.0.107" //服务器ip地址
  4. #define CLI_PORT 6666   //客户端端口号
  5. #define CLI_IP "192.168.36.174"  //客户端ip地址
  6. int main(int argc, const char *argv[])
  7. {
  8.         //1.创建用于通信的套接字文件描述符
  9.         int cfd=socket(AF_INET,SOCK_STREAM,0);
  10.         if(cfd ==-1)
  11.         {
  12.                 perror("socket error");
  13.                 return -1;
  14.         }
  15.         printf("cfd=%d\n",cfd);
  16.         //3.连接到服务器
  17.         //3.1填充服务器地址信息结构体
  18.         struct sockaddr_in sin;
  19.         sin.sin_family=AF_INET; //通信域
  20.         sin.sin_port=htons(SER_PORT);  //服务器端口号
  21.         sin.sin_addr.s_addr=inet_addr(SER_IP);  //服务器ip地址
  22.         //3.2连接到服务器
  23.         if(connect(cfd,(struct sockaddr*)&sin,sizeof(sin))==-1)
  24.         {
  25.                 perror("connect error");
  26.                 return -1;
  27.         }
  28.         printf("连接服务器成功\n");
  29.         //准备数据
  30.         char rbuf[5]={0xff,0x02,0x00,0x00,0xff};
  31.         char bbuf[5]={0xff,0x02,0x01,0x00,0xff};
  32.         char buf;//从终端读取数据
  33.         while(1)
  34.         {
  35.                 printf("请输入>>>");
  36.                 scanf("%c",&buf);
  37.                 getchar();
  38.                 switch(buf)
  39.                 {
  40.                         case 'w':
  41.                                 rbuf[3]+=0x10;
  42.                                 send(cfd,rbuf,sizeof(rbuf),0);
  43.                                 break;
  44.                         case 's':
  45.                                 rbuf[3]-=0x0A;
  46.                                 send(cfd,rbuf,sizeof(rbuf),0);
  47.                                 break;
  48.                         case 'd':
  49.                                 bbuf[3]+=0x10;
  50.                                 send(cfd,bbuf,sizeof(bbuf),0);
  51.                                 break;
  52.                         case'a':
  53.                                 bbuf[3]-=0x0A;
  54.                                 send(cfd,bbuf,sizeof(bbuf),0);
  55.                                 break;
  56.                         case '0':exit(0);
  57.                         default:
  58.                                    printf("输入错误\n");
  59.                                    break;
  60.                 }
  61.         }
  62.                        
  63.                 //5.关闭套接字
  64.                 close(cfd);
  65.                
  66.         return 0;
  67. }
复制代码
头脑导图


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表