12.18

有道云笔记

机械臂

#include <myhead.h>
#define SERPORT 8822
#define SERIP "192.168.125.61"
#define PORT 6666
#define IP "192.168.125.88"
int main(int argc, const char *argv[])
{int cfd=-1;if((cfd=socket(AF_INET,SOCK_STREAM,0))==-1){perror("socket");return -1;}
#if 1int reuse=1;if(setsockopt(cfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))==-1){perror("setsocket");return -1;}
#endifstruct sockaddr_in cin;cin.sin_family=AF_INET;cin.sin_port=htons(PORT);cin.sin_addr.s_addr=inet_addr(IP);if(bind(cfd,(struct sockaddr*)&cin,sizeof(cin))==-1){perror("bind");return -1;}struct sockaddr_in sin;sin.sin_family=AF_INET;sin.sin_port=htons(SERPORT);sin.sin_addr.s_addr=inet_addr(SERIP);if(connect(cfd,(struct sockaddr *)&sin,sizeof(sin))==-1){perror("connect");return -1;}char buf[5]={0xff,0x02,0x00,0x00,0xff};char value=0;buf[3]=0;send(cfd,buf,sizeof(buf),0);buf[2]=0x01;send(cfd,buf,sizeof(buf),0);buf[2]=0x00;while(1){value=getchar();getchar();switch(value){case 'w':case 'W':{buf[2]=0x00;buf[3]+=2;if(buf[3]>=90)buf[3]=90;send(cfd,buf,sizeof(buf),0);}break;case 's':case 'S':{buf[2]=0x00;buf[3]-=2;if(buf[3]<=-90)buf[3]=-90;send(cfd,buf,sizeof(buf),0);}break;case 'd':case 'D':{buf[2]=0x01;buf[3]+=2;if(buf[3]>=180)buf[3]=180;send(cfd,buf,sizeof(buf),0);}break;case 'a':case 'A':{buf[2]=0x01;buf[3]-=2;if(buf[3]<=0)buf[3]=0;send(cfd,buf,sizeof(buf),0);}break;default :  {printf("error\n");break;}}}close(cfd);return 0;
}

2tcp多进程

#include <myhead.h>
#define IP "192.168.125.88"
#define PORT 8811
void handle(int signo)
{if(signo==SIGCHLD)while(waitpid(-1,NULL,WNOHANG)>0);
}
int deal_sc(int newfd,struct sockaddr_in cin)
{char buf[128];while(1){bzero(buf,sizeof(buf));int res=recv(newfd,buf,sizeof(buf),0);if(res==0){printf("退出\n");return -1;}printf("[%s:%d]:%s\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),buf);strcat(buf,"*_*");send(newfd,buf,sizeof(buf),0);}return 0;
}
int main(int argc, const char *argv[])
{if(signal(SIGCHLD,handle)==SIG_ERR){perror("signal");return -1;}int sfd;if((sfd=socket(AF_INET,SOCK_STREAM,0))==-1){perror("socket");return -1;}struct sockaddr_in sin;sin.sin_family=AF_INET;sin.sin_port=htons(PORT);sin.sin_addr.s_addr=inet_addr(IP);if(bind(sfd,(struct sockaddr *)&sin,sizeof(sin))==-1){perror("bind");return -1;}if(listen(sfd,128)==-1){perror("listen");return -1;}struct sockaddr_in cin;socklen_t socklen=sizeof(cin);int newfd;int pid;while(1){if((newfd=accept(sfd,(struct sockaddr *)&cin,&socklen))==-1){perror("accept");return -1;}pid=fork();if(pid>0){close(newfd);}else if(pid==0){close(sfd);deal_sc(newfd,cin);close(newfd);exit(EXIT_SUCCESS);}else{printf("error\n");return -1;}}close(sfd);return 0;
}

3tcp多线程

#include <myhead.h>
#define PORT 8899
#define IP "192.168.125.88"
struct ds{int newfd;struct sockaddr_in cin;
};
void *task(void *arg)
{int newfd=((struct ds*)arg)->newfd;struct sockaddr_in cin=((struct ds*)arg)->cin;char buf[128];while(1){bzero(buf,sizeof(buf));int res=recv(newfd,buf,sizeof(buf),0);if(res==0){printf("结束\n");break;}printf("[%s:%d]:%s\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),buf);strcat(buf,"*_*");send(newfd,buf,sizeof(buf),0);}close(newfd);pthread_exit(NULL);
}
int main(int argc, const char *argv[])
{int sfd=-1;if((sfd=socket(AF_INET,SOCK_STREAM,0))==-1){perror("socket");return -1;}
#if 1int reuse=1;if(setsockopt(sfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))==-1){perror("setsocket");return -1;}
#endifstruct sockaddr_in sin;sin.sin_family=AF_INET;sin.sin_port=htons(PORT);sin.sin_addr.s_addr=inet_addr(IP);if(bind(sfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("bind");return -1;}if(listen(sfd,128)==-1){perror("listen");return -1;}struct sockaddr_in cin;socklen_t socklen=sizeof(cin);int newfd;pthread_t tid=-1;while(1){if((newfd=accept(sfd,(struct sockaddr*)&cin,&socklen))==-1){perror("accept");return -1;}struct ds info;info.newfd=newfd;info.cin=cin;if(pthread_create(&tid,NULL,task,&info)!=0){printf(" pthread error\n");return -1;}printf("[%s:%d]:newfd=%d\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),newfd);pthread_detach(tid);}close(sfd);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/230838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RTrPPG

研究背景 心率 (HR) 和脉搏率变异性 (PRV) 是允许分析心脏行为的两个生理参数。心率监测可以通过接触式和非接触式的两种方法进行。通常用于测量 HR 和 PRV 的两种接触式技术是心电图 (ECG) 和光电容积脉搏波 (PPG)。 ECG 测量由心脏活动引起的电场。另一方面&#xff0c;PPG …

02什么是CPU上下文切换

上⼀节&#xff0c; 讲了要怎么理解平均负载&#xff08; Load Average&#xff09; &#xff0c; 并⽤三个案例展示了不同场景下平均负载升⾼的分析⽅法。 这其中&#xff0c; 多个进程竞争 CPU 就是⼀个经常被我们忽视的问题。 1、CPU上下文切换的概念 我想你⼀定很好奇&am…

2023/12/18 work

1. 机械臂 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <myhead.h>#define CLI_PORT 6667 //本机的端口号 #define CLI_IP "192.168.125.79" //本机的IP#define SER_PORT 8888 //服务器的端口号 #define…

智能家居和智能家居控制设备有什么区别?

智能家居和智能家居控制设备在功能和用途伤的区别&#xff1a; 智能家居是一种整体的概念&#xff0c;它涵盖了整个家庭环境的智能化&#xff0c;包括智能家电、智能照明、智能安防等设备的互联互通和协同工作。智能家居的目标是通过中央控制器或智能音箱等设备&#xff0c;实现…

瑞安籍侨领池万进荣任意大利瑞安同乡总会第五届会长

浙江温州瑞安是全国重点侨乡&#xff0c;拥有海外侨胞16万人、侨领2100多名、归侨侨眷近12万人&#xff0c;在世界100多个国家和地区建有70多个侨团组织。 意大利瑞安同乡总会第五届理事会会长团全体成员 青年部全体成员 各兄弟会长及代表 12月10日&#xff0c;意大利瑞安同乡…

LabVIEW在燃气轮机发电机组励磁控制系统测试中的应用

LabVIEW在燃气轮机发电机组励磁控制系统测试中的应用 燃气轮机发电机组作为一种高效可靠的常备应急电源&#xff0c;在保障发电品质稳定性和可靠性方面发挥着关键作用。其中&#xff0c;励磁控制系统是保证供电质量的重要环节&#xff0c;对发电机组的稳定运行至关重要。为了有…

渲染函数JSX

大多数情况使用vue模板语法创建应用&#xff0c;在某些场景下&#xff0c;需要用到JavaScript完全的编程能力&#xff0c;这时就用到渲染函数了。 基本用法 创建Vnodes Vue提供了一个h()函数用于创建vnodes&#xff1a; import {h} from vueconst vnode h(div, // type{ i…

档案数字化管理可以提供什么服务?

档案数字化管理提供了便捷、高效和安全的档案管理服务&#xff0c;帮助组织更好地管理和利用自己的档案资源。 具体来说&#xff0c;专久智能档案数字化管理可以提供以下服务&#xff1a; 1. 档案扫描和数字化&#xff1a;将纸质档案通过扫描仪转换为数字格式&#xff0c;包括文…

xtu oj 1293 Diamond

题目描述 根据给出的尺寸n输出一个字符钻石&#xff0c;比如n3时&#xff0c;字符钻石为 CCBC CBABCCBCC 输入 第一行是整数K&#xff0c;表示样例的个数。 以后每行一个样例&#xff0c;为钻石的尺寸&#xff0c;n(1≤n≤26) 输出 依次输出每个样例的结果&#xff0c;每个…

Peter算法小课堂—简单建模(4)

太戈编程1655题 一条直线上&#xff0c;你安排了n个哨兵站岗放哨&#xff0c;编号从1到n。其中i号哨兵的坐标位置是x[i]。不会有哨兵站在相同的位置。作为指挥官&#xff0c;你需要知道3个信息&#xff1a; 1.从左到右&#xff0c;每个哨兵的坐标依次是几? 2.从左到右&…

当抖店有订单支付或确认时,无需人工操作,通过自动化流程实现自动解密电话号码并发送引流短信,高效转化私域用户

1 场景描述 为了提高用户体验&#xff0c;越来越多的企业正转向使用抖音小店来销售产品或扩大其粉丝群。在线教育行业尤其倾向于以抖店为其主要销售平台。这些公司通常会在抖店上销售试听课程&#xff0c;并通过抖店获取的用户手机号码发送短信&#xff0c;进而将潜在客户引导到…

uniapp蓝牙

在 uni-app 中开发蓝牙相关的小程序涉及到使用 uni-app 提供的蓝牙 API。uni-app 为多端开发提供了统一的 API&#xff0c;这意味着你编写的代码可以在不同的平台上运行&#xff0c;包括微信小程序。 以下是实现蓝牙功能的基本步骤和代码示例&#xff1a; 1. 开启蓝牙适配器 …

开发企业展示小程序的关键步骤和技巧

随着移动互联网的快速发展&#xff0c;小程序已经成为企业展示形象、推广产品和服务的重要工具。拥有一个优秀的小程序可以帮助企业提高品牌知名度&#xff0c;吸引更多潜在客户&#xff0c;提升用户体验。以下是拥有一个展示小程序的步骤&#xff1a; 确定需求和目标 首先&am…

【深度学习】序列生成模型(二):束搜索

文章目录 序列生成束搜索理论基础算法步骤python实现 序列生成 在进行最大似然估计训练后的模型 p θ ( x ∣ x 1 : ( t − 1 ) ) p_\theta(x | \mathbf{x}_{1:(t-1)}) pθ​(x∣x1:(t−1)​)&#xff0c;我们可以使用该模型进行序列生成。生成的过程是按照时间顺序逐步生成序…

实现el-table操作列点击弹出echarts

代码&#xff1a; <el-table-column :width"90"><template #default"scope"><el-popover placement"left-end" width"550" trigger"click"><div><div style"font-size: 18px; margin-left…

IDEA报错处理

问题1 IDEA 新建 Maven 项目没有文件结构 pom 文件为空 将JDK换成1.8后解决。 网络说法&#xff1a;别用 java18&#xff0c;换成 java17 或者 java1.8 都可以&#xff0c;因为 java18 不是 LTS 版本&#xff0c;有着各种各样的问题。。

numpy-learn

创建数组 import numpy as np import pandas as pd import mathvalue float(nan)# 使用 math.isnan() if math.isnan(value):print("Value is NaN")# 使用 numpy.isnan() if np.isnan(value):print("Value is NaN")np.array([1, 2, 3, 4, 5]) np.linspac…

Hadoop和Spark的区别

Hadoop 表达能力有限。磁盘IO开销大&#xff0c;延迟度高。任务和任务之间的衔接涉及IO开销。前一个任务完成之前其他任务无法完成&#xff0c;难以胜任复杂、多阶段的计算任务。 Spark Spark模型是对Mapreduce模型的改进&#xff0c;可以说没有HDFS、Mapreduce就没有Spark。…

Python 词法分析

Python 程序由 解析器 读取&#xff0c;输入解析器的是 词法分析器 生成的 形符 流。本章介绍词法分析器怎样把文件拆成形符。 Python 将读取的程序文本转为 Unicode 代码点&#xff1b;编码声明用于指定源文件的编码&#xff0c;默认为 UTF-8&#xff0c;详见 PEP 3120。源文…

Wireshark插件开发

第一章&#xff1a;Wireshark基础及捕获技巧 1.1 Wireshark基础知识回顾 1.2 高级捕获技巧&#xff1a;过滤器和捕获选项 1.3 Wireshark与其他抓包工具的比较 第二章&#xff1a;网络协议分析 2.1 网络协议分析&#xff1a;TCP、UDP、ICMP等 2.2 高级协议分析&#xff1a;HTTP…