当前位置: 首页 > news >正文

网络编程day3

作业

通过w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂

注意:关闭计算机的杀毒软件,电脑管家,防火墙

#include<myhead.h>#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 error");return -1;}printf("cfd = %d\n", cfd);             //3char ser_ip[20]="";printf("请输入目标服务器IP>>>");fgets(ser_ip,sizeof(ser_ip),stdin);ser_ip[strlen(ser_ip)-1]=0;//2、连接到服务器//2.1 填充服务器地址信息结构体struct sockaddr_in sin;sin.sin_family = AF_INET;          //通信域sin.sin_port = htons(SER_PORT);      //服务器端口号sin.sin_addr.s_addr = inet_addr(ser_ip);     //服务器ip地址//2.2 连接服务器if(connect(cfd, (struct sockaddr*)&sin, sizeof(sin)) == -1){perror("connect error");return -1;}printf("连接服务器成功\n");//准备数据char rbuf[5] = {0xff, 0x02, 0x00, 0x00, 0xff};char bbuf[5] = {0xff, 0x02, 0x01, 0x00, 0xff};//发送给服务器,以初始化机械臂send(cfd, rbuf,sizeof(rbuf), 0);sleep(1);send(cfd, bbuf,sizeof(bbuf), 0);printf("请输入w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)\输入q退出\n");while(1){   char input;scanf("%c",&input);getchar();switch(input)           //判断输入的内容{case 'w':           //红色臂角度增大{if(rbuf[3]<0x5A){rbuf[3]++;send(cfd,rbuf,sizeof(rbuf),0);}break;}case 's':{   if(rbuf[3]>-90)rbuf[3]--;send(cfd,rbuf,sizeof(rbuf),0);break;}case 'a':           //蓝色臂角度减小{if(bbuf[3]>0x00){bbuf[3]--;send(cfd,bbuf,sizeof(bbuf),0);break;}}case 'd':{if(bbuf[3]<0xB4){bbuf[3]++;send(cfd,bbuf,sizeof(bbuf),0);break;}}default:printf("输入错误\n");break;}if(input=='q')           //退出条件{break;}sleep(1);}//关闭套接字close(cfd);return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java中金额转换处理(转大写,三位一逗)
  • 您知道有哪些主流的大模型LLM开源项目吗?
  • Marmir,一个超牛的Python库
  • 力扣题/图论/岛屿数量
  • 【大数据】智慧园区大数据云平台整体建设方案(Word原件)
  • 【Python学习-UI界面】PyQt5 小部件14-QDock 子窗口
  • Redis常见的数据类型和应用场景
  • 一、在cubemx上配置sd和fatfs示例演示
  • 聚观早报 | 一加13配置细节曝光;谷歌首推人工智能手机
  • 单元训练09:定时器实现秒闪功能
  • 必看!亚马逊卖家如何利用自养号测评策略提升买家评价与销量
  • 第四范式发布AI+5G视频营销产品 助力精准获客与高效转化
  • 面对复杂订单统计,如何用这款工具化整为零?
  • 光影漫游者:开创沉浸式体验新纪元—轻空间
  • Sublime Text常用快捷键大全
  • 4个实用的微服务测试策略
  • axios 和 cookie 的那些事
  • ESLint简单操作
  • Git初体验
  • Java Agent 学习笔记
  • jquery cookie
  • leetcode386. Lexicographical Numbers
  • XML已死 ?
  • 飞驰在Mesos的涡轮引擎上
  • 批量截取pdf文件
  • 移动端 h5开发相关内容总结(三)
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (pycharm)安装python库函数Matplotlib步骤
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (算法设计与分析)第一章算法概述-习题
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)jQuery 基础
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Reactor简单使用教程
  • .NET 设计模式初探
  • .net 验证控件和javaScript的冲突问题
  • .Net 知识杂记
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .NET项目中存在多个web.config文件时的加载顺序
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • .Net转前端开发-启航篇,如何定制博客园主题
  • /etc/fstab和/etc/mtab的区别
  • ;号自动换行