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

2025.01.01(IO模型分类,超时检测,抓包分析,机械臂客户端)

作业:基于机械臂服务器写出客户端代码并执行

#include <myhead.h>
#define IP "192.168.124.62"
#define PORT 8888

int main(int argc, const char *argv[])
{
	//1.创建套接字
	int cfd = socket(AF_INET,SOCK_STREAM,0);
	if(cfd==-1)
	{
		perror("socket");
		return -1;
	}

	//2.绑定
	
	//3.连接
	//3-1.填充地址信息结构体
	struct sockaddr_in aaa;
	aaa.sin_family = AF_INET;
	aaa.sin_port = htons(PORT);
	aaa.sin_addr.s_addr = inet_addr(IP);

	//3-2.连接服务器
	if(connect(cfd,(struct sockaddr *)&aaa,sizeof(aaa))==-1)
	{
		perror("connect");
		return -1;
	}

	//4.向服务器发送消息
	char rbuf[5] = {0xff,0x02,0x00,-0x5A,0xff}; 	//红色臂
	unsigned char bbuf[5] = {0xff,0x02,0x01,0x00,0xff}; 	//蓝色臂

	//先发送初始数据
	send(cfd,rbuf,sizeof(rbuf),0);
	sleep(1);
	send(cfd,bbuf,sizeof(bbuf),0);

	//通过键盘控制数据的收发
	char bbb;
	while(1)
	{
		scanf("%c",&bbb);
		while(getchar()!='\n');

		switch(bbb)
		{
			//红色臂
			case 'w':
				rbuf[3] += 5; 	//增加5度
				if(rbuf[3]>=90)
				{
					rbuf[3] = 90;
				}
				send(cfd,rbuf,sizeof(rbuf),0);
				break;
			case 'a':
					rbuf[3] -= 5; //减少5度
				if(rbuf[3]<=-90)
				{
					rbuf[3] = -90;
				}
				send(cfd,rbuf,sizeof(rbuf),0);
				break;
		//蓝色臂
			case 's':
					bbuf[3] += 5; //增加5度
				if(bbuf[3] > 180)
				{
					bbuf[3] = 180;
				}
				send(cfd,bbuf,sizeof(bbuf),0);
				break;

			case 'd':
				bbuf[3] -= 5; 	//减少5度
				if(bbuf[3] < 0)
				{
					bbuf[3] = 0;
				}
				send(cfd,bbuf,sizeof(bbuf),0);
				break;

			case 'q': 			//初始化
				rbuf[3] = -90;
				bbuf[3] = 0;
				send(cfd,rbuf,sizeof(rbuf),0);
				send(cfd,bbuf,sizeof(bbuf),0);
				break;
		}
	}
	return 0;
}

思维导图

域套接字

io模型分类

 超时分析

抓包分析


http://www.kler.cn/a/463372.html

相关文章:

  • mysql连接时报错1130-Host ‘hostname‘ is not allowed to connect to this MySQL server
  • PCA降维算法详细推导
  • 探索 AIGC 的基础知识:人工智能生成内容的全景视图
  • Docker入门常用命令总结
  • JeeSite 快速开发平台:全能企业级快速开发解决方案|GitCode 光引计划征文展示
  • ubuntu切换到root用户
  • Python软体中在AWS Lambda上部署Python应用:一站式部署指南
  • QT---------QT框架功能概述
  • SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者
  • Go小技巧易错点100例(二十)
  • 解决Springboot整合Shiro+Redis退出登录后不清除缓存
  • 安卓入门八 常用网络协议一
  • ArkTs语法学习
  • ChatGPT 是通用人工智能吗
  • Linux Ubuntu24配置安装Java
  • 无人机丢失信号处理方式!
  • Transformer--Decoder
  • Mysql学习笔记之约束
  • 网络安全课程
  • JVM学习:CMS和G1收集器浅析
  • PHP Fatal error: Uncaught com_exception: Source:Kingsoft WPS Description:文档打开失败
  • 【AI日记】25.01.01 秦制两千年
  • ubuntu20.04 中文输入法安装
  • nginx-负载均衡
  • 微信小程序BackgroundAudioManager使用中的问题
  • 【每日学点鸿蒙知识】文字识别、快捷登录、输入法按钮监听、IDE自动换行、资产访问等