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

41、网络编程/TCP.UDP通信模型练习20240301

一、编写基于TCP的客户端实现以下功能:

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

1.基于TCP服务器的机械臂,端口号是8888, ip是Windows的ip;

查看Windows的IP:按住Windows+r 按键,输入cmd , 输入ipconfig。

2.点击软件中的开启监听;

3.机械臂需要发送16进制数,共5个字节,协议如下

0xff    0x02    x   y   0xff
0xff:起始结束协议,固定的;
0x02:控制机械手臂协议,固定的;
x:指定要操作的机械臂0x00 红色摆臂0x01 蓝色摆臂
y:指定角度

 

代码:

#include<myhead.h>
#define SER_IP "192.168.125.64"  //服务器IP
#define SER_PORT 8888          //服务器端口号
int main(int argc, const char *argv[])
{//创建套接字文件int sfd=socket(AF_INET,SOCK_STREAM,0);if(sfd==-1){perror("socket error");return -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);//连接服务器if(connect(sfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("connect error");return -1;}puts("connect success");//数据发送//定义控制红色臂的数组并初始化,范围是[-90,90]char rbuf[5]={0xff,0x02,0x00,0x00,0xff};//定义控制蓝色臂的数组并初始化,范围是[0,180]unsigned char bbuf[5]={0xff,0x02,0x01,0x00,0xff};//发送初始值send(sfd,rbuf,sizeof(rbuf),0);sleep(1);//防止沾包send(sfd,bbuf,sizeof(bbuf),0);char key=0;while(1){system("stty -icanon");//关闭缓冲区key=getchar();fflush(stdin);switch(key){case 'W':case 'w':{rbuf[3]+=2;//每次操作的角度偏移2度if(rbuf[3]>=90){rbuf[3]=90;}send(sfd,rbuf,sizeof(rbuf),0);}break;case 'S':case 's':{rbuf[3]-=2;if(rbuf[3]<=-90){rbuf[3]=-90;}send(sfd,rbuf,sizeof(rbuf),0);}break;case 'D':case 'd':{bbuf[3]+=2;if(bbuf[3]>=180){bbuf[3]=180;}send(sfd,bbuf,sizeof(bbuf),0);}break;case 'A':case 'a':{bbuf[3]-=2;if(bbuf[3]>180)//无符号整数小于零后会向255循环{bbuf[3]=0;}send(sfd,bbuf,sizeof(bbuf),0);}break;}}close(sfd);return 0;
}

运行:

思维导图

 

相关文章:

41、网络编程/TCP.UDP通信模型练习20240301

一、编写基于TCP的客户端实现以下功能&#xff1a; 通过键盘按键控制机械臂&#xff1a;w(红色臂角度增大)s&#xff08;红色臂角度减小&#xff09;d&#xff08;蓝色臂角度增大&#xff09;a&#xff08;蓝色臂角度减小&#xff09;按键控制机械臂 1.基于TCP服务器的机械臂…...

Python中操作MySQL和SQL Server数据库的基础与实战【第97篇—MySQL数据库】

Python中操作MySQL和SQL Server数据库的基础与实战 在Python中&#xff0c;我们经常需要与各种数据库进行交互&#xff0c;其中MySQL和SQL Server是两个常见的选择。本文将介绍如何使用pymysql和pymssql库进行基本的数据库操作&#xff0c;并通过实际代码示例来展示这些操作。…...

【兔子机器人】五连杆运动学解算与VMC(virtual model control)

VMC (virtual model control&#xff0c;虚拟模型控制) 是一种直觉控制方式&#xff0c;其关键是在每个需要控制的自由度上构造恰当的虚拟构件以产生合适的虚拟力。虚拟力不是实际执行机构的作用力或力矩&#xff0c;而是通过执行机构的作用经过机构转换而成。对于一些控制问题…...

学习鸿蒙基础(6)

一、Prop属性 父——>子 单向同步 Prop装饰的变量可以和父组件建立单向的同步关系。Prop装饰的变量是可变的&#xff0c;但是变化不会同步回其父组件。Prop装饰的变量和父组件建立单向的同步关系。Prop变量允许在本地修改&#xff0c;但修改后的变化不会同步回父组件。当父组…...

标准PoE交换机、非标准PoE交换机和非PoE交换机三者到底有何区别?

目录 前言&#xff1a; 一、标准PoE交换机 1.1 工作原理 1.2 应用场景 1、视频监控 2、无线接入点 3、IP电话 1.3 优势 1、简化布线 2、简化安装 3、提高可靠性 二、非标准PoE交换机 2.1 工作原理 2.2 应用场景 1、无线路由器 2、IP电话 3、数据中心 2.3 优势…...

【软件测试】--功能测试4-html介绍

1.1 前端三大核心 html:超文本标记语言&#xff0c;由一套标记标签组成 标签&#xff1a; 单标签&#xff1a;<标签名 /> 双标签:<标签名></标签名> 属性&#xff1a;描述某一特征 示例:<a 属性名"属性值"> 1.2 html骨架标签 <!DOC…...

模型优化_XGBOOST学习曲线及改进,泛化误差

代码 from xgboost import XGBRegressor as XGBR from sklearn.ensemble import RandomForestRegressor as RFR from sklearn.linear_model import LinearRegression as LR from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split,c…...

Java8 - LocalDateTime时间日期类使用详解

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&…...

3D城市模型可视化:开启智慧都市探索之旅

随着科技的飞速发展&#xff0c;我们对城市的认知已经不再局限于平面的地图和照片。今天&#xff0c;让我们领略一种全新的城市体验——3D城市模型可视化。这项技术将带领我们走进一个立体、生动的城市世界&#xff0c;感受前所未有的智慧都市魅力。 3D城市模型通过先进的计算机…...

某查查首页瀑布流headers加密

目标网站&#xff1a; 某查查 对目标网站分析发现 红框内的参数和值都是加密的&#xff0c;是根据算法算出来的&#xff0c;故进行逆向分析。 由于没有固定参数名&#xff0c;只能通过搜索headers&#xff0c;在搜索的位置上打上断点&#xff0c;重新请求。 断点在此处断住&a…...

Microsoft Visio 文本框上标或下标

Microsoft Visio 文本框上标或下标 1. 文本框公式2. 选中需要成为上标或下标的部分&#xff0c;开始 - > 段落 -> 字体 -> 常规 -> 位置 -> 上标 / 下标​​​3. 文本框公式4. 快捷键References 1. 文本框公式 2. 选中需要成为上标或下标的部分&#xff0c;开始…...

Java项目:29 基于SpringBoot+thymeleaf实现的图书管理系统

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 基于SpringBootthymeleaf实现的图书管理系统分为管理员、读者两个登录角色&#xff0c;一共是8个功能模块 管理员权限 图书管理&#xff1a;…...

Unity游戏项目中的优化之摄像机视锥体剔除优化

在项目中一个完成的游戏场景一般都会有成千上百的物体&#xff0c;假如都去让GPU全部渲染一遍&#xff0c;那带来的消耗其实是挺大的&#xff0c;很多不在摄像机范围内的物体其实没有必要去渲染&#xff0c;尽管GPU自带剔除&#xff0c;但是如果从CPU阶段就提交给GPU指令——哪…...

超1000本计算机经典书籍分享(均可免费下载)

今天给大家推荐两个开源项目&#xff0c;均可百度网盘下载&#xff1a; 1 https://gitee.com/ForthEspada/CS-Books 超过1000本的计算机经典书籍、个人笔记资料以及作者在各平台发表文章中所涉及的资源等。 书籍资源包括C/C、Java、Python、Go语言、数据结构与算法、操作系统…...

AI大模型提供商有哪些?

AI大模型提供商&#xff1a;引领人工智能创新浪潮 随着人工智能技术的迅猛发展&#xff0c;AI大模型成为了推动行业变革和创新的核心驱动力之一。作为AI领域的重要参与者&#xff0c;AI大模型提供商扮演着关键的角色。本文将围绕这一主题&#xff0c;介绍几家在AI大模型领域具…...

【Linux】部署单机项目(自动化启动)

目录 一.jdk安装 二.tomcat安装 三.MySQL安装 四.部署项目 一.jdk安装 1.上传jdk安装包 jdk-8u151-linux-x64.tar.gz 进入opt目录&#xff0c;将安装包拖进去 2.解压安装包 防止后面单个系列解压操作&#xff0c;我这边就直接将所有的要用的全部给解压&#xff0c;如下图注…...

MySQL:使用聚合函数查询

提醒&#xff1a; 设定下面的语句是在数据库名为 db_book里执行的。 创建t_grade表 USE db_book; CREATE TABLE t_grade(id INT,stuName VARCHAR(20),course VARCHAR(40),score INT );为t_grade表里添加多条数据 INSERT INTO t_grade(id,stuName,course,score)VALUES(1,测试0…...

【Linux C | 网络编程】套接字选项、getsockopt、setsockopt详解及C语言例子

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

Springboot解决模块化架构搭建打包错误找不到父工程

Springboot解决模块化架构搭建打包错误找不到父工程 一、情况一找不到父工程依赖1、解决办法 二、情况二子工程相互依赖提示"程序包xxx不存在" 一、情况一找不到父工程依赖 报错信息 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:…...

Android全屏黑边解决方案

在Android12以上的手机&#xff0c;设置全屏后屏幕底部有黑边或者白边&#xff0c;有的屏幕顶部有黑边。解决方案很简单&#xff0c;在使用的主题中添加对应的设置即可&#xff0c;如下&#xff1a; res/values/themes.xml <resources><style name"Base.Theme.La…...

操作系统第一章

1.1. 概念计算机系统的层次结构用户应用程序&#xff08;软件&#xff09;操作系统裸机&#xff08;纯硬件&#xff09;操作系统负责管理协调硬件、软件等计算机资源的工作为上层的应用程序、用户提供简单易用的服务操作系统是系统软件&#xff0c;而不是硬件操作系统&#xff…...

LinkSwift:八大网盘直链解析工具的现代化技术实现指南

LinkSwift&#xff1a;八大网盘直链解析工具的现代化技术实现指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

Translumo:打破语言障碍的终极屏幕实时翻译工具完整指南

Translumo&#xff1a;打破语言障碍的终极屏幕实时翻译工具完整指南 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否…...

Kate文本编辑器

链接&#xff1a;https://pan.quark.cn/s/963a0fa99157Kate是一个可以跨平台使用的免费高级文本编辑器&#xff0c;支持标签页、代码高亮、显示行号、图的滚动条、多文件查找、横向或者纵向显示多个视图等众多高级特性。1、双击当前标签页创建新标签页。2、支持启用/禁用自动换…...

5分钟搞定网盘直链下载:八大平台一键解析全攻略

5分钟搞定网盘直链下载&#xff1a;八大平台一键解析全攻略 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…...

雷小喵实测:大学生学英语,轻松坚持不费力

很多大学生学英语都陷入死循环&#xff1a;单词书越背越厚、App换了又换、打卡坚持不了几天&#xff0c;一到四六级还是读不快、写不出、听不懂。不是你不够努力&#xff0c;而是学习方式太反人性。我用了近一个月雷小喵&#xff0c;最大感受是&#xff1a;它不是在逼你“学英语…...

一文读懂计算机视觉需要哪些数学基础

一文读懂计算机视觉需要哪些数学基础 标签&#xff1a;#计算机视觉、#线性代数、#人工智能、#深度学习、#自然语言处理、#神经网络、#机器学习### 一、痛点引入&#xff1a;为什么很多人怕CV数学&#xff1f;真相是什么&#xff1f;### 二、CV必备数学&#xff1a;必须掌握的和…...

华为云MindSpore实战:动态学习率与Batch Size调参,让你的鸢尾花模型收敛快一倍

华为云MindSpore实战&#xff1a;动态学习率与Batch Size调参&#xff0c;让你的鸢尾花模型收敛快一倍 鸢尾花分类是机器学习入门的经典案例&#xff0c;但很多开发者在实际训练中常遇到模型收敛慢、效果不稳定等问题。本文将聚焦华为云MindSpore框架下的两个关键调参技巧——动…...

如何用GetQzonehistory实现QQ空间数据备份?3步永久保存你的数字记忆

如何用GetQzonehistory实现QQ空间数据备份&#xff1f;3步永久保存你的数字记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字时代&#xff0c;我们的青春记忆越来越多地存储在…...

杭州专业WordPress模板开发服务商

模板号(mubanhao)是杭州地区知名的WordPress模板开发服务商&#xff0c;专注于为企业提供高品质的WordPress网站模板解决方案。作为长三角地区领先的网站建设服务提供商&#xff0c;模板号凭借多年的技术积累和行业深耕&#xff0c;已成为众多企业数字化转型道路上值得信赖的合…...