work 3/1

1>機械臂

#include <head.h>
#define SER_POTR 8899
#define SER_IP "192.168.125.223"
int main(int argc, const char *argv[])
{//創建套接字int cfd=socket(AF_INET,SOCK_STREAM,0);if(cfd==-1){perror("");return -1;}//鏈接struct sockaddr_in sin;sin.sin_family=AF_INET;sin.sin_port=htons(SER_POTR);sin.sin_addr.s_addr=inet_addr(SER_IP);if(connect(cfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("connect error:");return -1;}char red[5]={0xff,0x02,0x00,0x00,0xff};unsigned char blue[5]={0xff,0x02,0x01,0x8a,0xff};while(1){char cmd;printf("請輸入命令:");scanf("%c",&cmd);getchar();switch(cmd){case 'w':{red[3]+=10;send(cfd,red,sizeof(red),0);break;}case 's':{red[3]-=10;send(cfd,red,sizeof(red),0);break;}case 'a':{blue[3]-=10;send(cfd,blue,sizeof(blue),0);break;}case 'd':{blue[3]+=10;send(cfd,blue,sizeof(blue),0);break;}default:{printf("輸入有誤\n");}}}return 0;
}

2> 使用tftp實現簡單文件的上傳

#include <head.h>
#define SER_PORT 69
#define SER_IP "192.168.125.223"
int link_file()
{int sfd=socket(AF_INET,SOCK_DGRAM,0);if(sfd==-1){perror("socket error");return -1;}return sfd;
}
int filedownload()
{//創建文件描述符用于下載傳輸過來的數據包int wfd=-1;if((wfd=open("./copy_file",O_WRONLY|O_CREAT|O_TRUNC,0664))==-1){perror("open 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);socklen_t socklen=sizeof(sin);int sfd=-1;if((sfd=link_file())==-1){printf("鏈接失敗\n");return -1;}//封裝請求下載數據包//第一塊char buf[516]="";short *p1=(short*)buf;*p1=htons(1);//第二模塊printf("請輸入你要下載的文件:");char file[50];scanf("%s",file);char *p2=buf+2;strcpy(p2,file);//第三模塊char *p3=p2+strlen(p2)+1;strcpy(p3,"octet");int len=4+strlen(p2)+strlen(p3);sendto(sfd,buf,len,0,(struct sockaddr*)&sin,sizeof(sin));while(1){int res=0;if((res=recvfrom(sfd,buf,sizeof(buf),0,(struct sockaddr*)&sin,&socklen))<0){perror("recvfrom error:");return -1;}char *data_point=buf+4;short *cmd_point=(short*)buf;short *block_point=(short*)(buf+2);if(res<516){write(wfd,data_point,res-4);printf("文件拷貝完成!\n");break;}write(wfd,data_point,512); //完成了一次拷貝要向客戶端發送ACK包char ack[4];short *p1=(short*)ack;short *p2=(short*)(ack+2);*p1=htons(4);*p2=*block_point;sendto(sfd,ack,4,0,(struct sockaddr*)&sin,sizeof(sin));}
}
int onload()
{int sfd=link_file();system("ls");printf("請問你要上傳的文件是:");char file[50];scanf("%s",file);//未完成
}
int main(int argc, const char *argv[])
{while(1){printf("==========歡迎使用文件下載客戶端==========\n");printf("1、下載文件\t2、上傳文件\t0、退出\n");printf("請輸入你要執行的操作:");int cmd;scanf("%d",&cmd);switch(cmd){case 1:{filedownload();break;}case 2:{//fileonload();break;}case 0:{system("clear");return 0;}default:{printf("輸入有誤\n");}}system("clear");}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/717263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/717263.shtml
英文地址,請注明出處:http://en.pswp.cn/news/717263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一文搞懂瀏覽器緩存機制

文章目錄 概述強制緩存協商緩存總結參考文章 概述 瀏覽器的緩存機制也就是我們說的HTTP緩存機制&#xff0c;其機制是根據HTTP報文的緩存標識進行的 瀏覽器第一次向服務器發送HTTP請求, 瀏覽器拿到請求結果后&#xff0c;會根據響應報文的緩存標識&#xff0c;決定是否進行緩存…

機器學習:數據處理基操

在處理完數據之后&#xff0c;選擇好模型&#xff0c;就可以用訓練集訓練模型&#xff0c;用測試集輸入模型 然后輸出需要預測的結果啦&#xff5e; 一、模塊導入 import numpy as np import pandas as pd #讀入數據 二、pandas數據 一、dataframe基礎 一、dataframe的創建…

github新手使用詳解及環境搭建案例

對于 GitHub 的新手使用以及環境搭建&#xff0c;以下是詳細的步驟和案例&#xff1a; 一、GitHub 新手使用詳解 注冊 GitHub 賬號&#xff1a;首先&#xff0c;你需要在 GitHub 官網上注冊一個賬號。填寫必要的個人信息&#xff0c;如用戶名、郵箱和密碼等。注冊完成后&…

【代碼】Android|判斷asserts下的文件存在與否,以及普通文件存在與否

作者版本&#xff1a;Android 11及以上 主要是發現網上沒有完整的、能跑的代碼&#xff0c;不知道怎么回事&#xff0c;GPT給我重寫的。我只能保證這個代碼尊嘟能跑&#xff0c;不像其他的缺胳膊少腿的。 asserts 貼一下結果&#xff1a; boolean isAssertFileExists(String …

Nginx配置php起WoWSimpleRegistration服務

WoWSimpleRegistration服務的git地址&#xff1a; GitHub - TrinityCore/WoWSimpleRegistration: Simple Registration page for TrinityCore/AzerothCore/AshamaneCore/CMangos 下載WoWSimpleRegistration 首先git下載&#xff1a; git clone https://github.com/TrinityC…

kafka消費者接收不到消息

背景&#xff1a; 對kafka消息進行監聽&#xff0c;生產者發了消息&#xff0c;但是消費端沒有接到消息&#xff0c;監聽代碼 消費端&#xff0c;kafka配置 spring.kafka.bootstrap-serverskafka.cestc.dmp:9591 spring.kafka.properties.sasl.jaas.configorg.apache.kafka.…

29.HarmonyOS App(JAVA)通知

普通通知: 通知渠道,彈出消息后&#xff0c;自動消失 長文本通知 //多行文本通知 //圖片通知 //社交通知 //媒體通知--經測試&#xff0c;圖片無法顯示&#xff0c;文字不顯示 場景介紹 HarmonyOS提供了通知功能&#xff0c;即在一個應用的UI界面之外顯示的消息&#xff0c;主…

C++之結構體以及通訊錄管理系統

1&#xff0c;結構體基本概念 結構體屬于自定義的數據概念&#xff0c;允許用戶存儲不同的數據類型 2&#xff0c;結構體的定義和使用 語法&#xff1a;struct 結構體名{ 結構體成員列表}&#xff1b; 通過結構體創建變量的方式有三種&#xff1a; 1&#xff0c;struct …

【簡說八股】面試官:你知道什么是AOP么?

回答 AOP(Aspect-Oriented Programming)&#xff0c;即面向切面編程&#xff0c;是一種編程范式&#xff0c;它的主要思想是將應用程序中的橫切關注點&#xff08;如日志記錄、性能統計、安全控制等&#xff09;從業務邏輯中剝離出來&#xff0c;然后通過特殊的方式將這些橫切…

設計模式學習筆記 - 設計原則 - 8.迪米特法則(LOD)

前言 迪米特法則&#xff0c;是一個非常實用的原則。利用這個原則&#xff0c;可以幫我們實現代碼的 “高內聚、松耦合”。 圍繞下面幾個問題&#xff0c;來學習迪米特原則。 什么是 “高內聚、松耦合”&#xff1f;如何利用迪米特法則來實現 高內聚、松耦合&#xff1f;哪些…

程序員求職

程序員的金三銀四求職寶典 隨著春天的腳步漸近&#xff0c;對于許多程序員來說&#xff0c;一年中最繁忙、最重要的面試季節也隨之而來。金三銀四&#xff0c;即三月和四月&#xff0c;被廣大程序員視為求職的黃金時期。在這兩個月里&#xff0c;各大公司紛紛開放招聘&#xf…

技術實踐|百度安全「大模型內容安全」高級攻擊風險評測

1、引子 2023年10月16日&#xff0c;OWASP發布了《OWASP Top 10 for LLM Applications》&#xff0c;這對于新興的大語言模型安全領域&#xff0c;可謂一份綱領性的重要報告。 OWASP是開放式Web應用程序安全項目&#xff08;Open Web Application Security Project&#xff0…

【Linux網絡命令系列】ping curl telnet三劍客

&#x1f49d;&#x1f49d;&#x1f49d;歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

【C++】vector的使用和模擬實現(超級詳解!!!!)

文章目錄 前言1.vector的介紹及使用1.1 vector的介紹1.2 vector的使用1.2.1 vector的定義1.2.2 vector iterator 的使用1.2.3 vector 空間增長問題1.2.3 vector 增刪查改1.2.4 vector 迭代器失效問題。&#xff08;重點!!!!!!&#xff09;1.2.5 vector 在OJ中有關的練習題 2.ve…

C++入門和基礎

目錄 文章目錄 前言 一、C關鍵字 二、命名空間 2.1 命名空間的定義 2.2 命名空間的使用 2.3 標準命名空間 三、C輸入&輸出 四、缺省參數 4.1 缺省參數的概念 4.2 缺省參數的分類 五、函數重載 5.1 函數重載的簡介 5.2 函數重載的分類 六、引用 6.1 引用的…

搭建個人IC_EDA服務器(物理機)一:安裝Centos7

1.準備 大于8G的U盤&#xff1b;待裝的電腦&#xff0c;我使用淘汰的在大學時候使用的筆記本&#xff1b;U盤啟動器制作工具&#xff1a;UltralSo&#xff1b;官網下載的在沒有付費的情況下&#xff0c;即使試用期&#xff0c;安裝的時候會有莫名的問題&#xff0c;建議使用這…

【接口測試】常見HTTP面試題

目錄 HTTP GET 和 POST 的區別 GET 和 POST 方法都是安全和冪等的嗎 接口冪等實現方式 說說 post 請求的幾種參數格式是什么樣的&#xff1f; HTTP特性 HTTP&#xff08;1.1&#xff09; 的優點有哪些&#xff1f; HTTP&#xff08;1.1&#xff09; 的缺點有哪些&#x…

全量知識系統問題及SmartChat給出的答復 之14 解析器+DDD+文法型 之2

Q36. 知識系統中設計的三種文法解析器和設計模式之間的關系 進一步&#xff0c;我想將 知識系統中設計的三種語言&#xff08;形式語言、人工語言和自然&#xff09;的文法解析器和DDD中的三種程序類型&#xff08;領域模型、領域實體和領域服務&#xff09; 形式語言文法 我…

動態代理總結

Java 代理模式 使用代理對象來代替對真實對象(real object)的訪問&#xff0c;這樣就可以在不修改原目標對象的前提下&#xff0c;提供額外的功能操作&#xff0c;擴展目標對象的功能 靜態代理 靜態代理在編譯時就將接口、實現類、代理類這些都變成了一個個實際的 class 文件…

MQ如何防止消息被重復消費?

被詢問如何防止MQ消息被重復消費時&#xff0c;其實是在考察候選人對消息隊列、分布式系統設計以及容錯機制的理解&#xff0c;通過這些問題&#xff0c;可以全面了解候選人在處理MQ消息重復消費問題時的思考方式、技術能力和實踐經驗&#xff0c;從而評估其是否適合擔任相關崗…