9月10日

TCP客戶端代碼

#include<myhead.h>
#define SER_IP "192.168.108.179" ? ?//服務器ip地址
#define SER_PORT 8888 ? ? ? ? ? ? ? //服務器端口號
#define CLI_IP "192.168.108.239" ? ? //客戶端ip地址
#define CLI_PORT 7777 ? ? ? ? ? ? ? //客戶端端口號

//TCP客戶端
int main(int argc, const char *argv[])
{
//創建用于通信的套接字文件描述符
int cfd = socket(AF_INET, SOCK_STREAM, 0);
if(cfd == -1)
{
perror("socket error");
return -1;
}

?? ?//連接服務器
//服務器地址信息結構體
struct sockaddr_in sin;
sin.sin_family = AF_INET; ? ?//IPV4
sin.sin_addr.s_addr = inet_addr(SER_IP);//要連接的服務器IP
sin.sin_port = htons(SER_PORT); ? ? //服務器的端口號

????//連接操作
if(connect(cfd, (struct sockaddr*)&sin, sizeof(sin))==-1)
{
perror("connect error");
return -1;
}


//紅色臂初始角度
char rbuf[5] = {0xff, 0x02, 0x00, 0x00, 0xff};
//藍色臂初始角度
unsigned char bbuf[5] = {0xff, 0x02, 0x01, 0x5a, 0xff};

?? ?//將上面的數據分別發送給服務器
send(cfd, rbuf, sizeof(rbuf), 0);
send(cfd, bbuf, sizeof(bbuf), 0);

?? ?//WASD功能
char input;
while(1)
{
scanf("? %c",&input);
switch(input)
{
case 'w':
rbuf[3]+=2;
send(cfd,rbuf,sizeof(rbuf),0);
break;
case 's':
rbuf[3]-=2;
send(cfd,rbuf,sizeof(rbuf),0);
break;
case 'd':
bbuf[3]+=2;
send(cfd,bbuf,sizeof(bbuf),0);
break;
case 'a':
bbuf[3]-=2;
send(cfd,bbuf,sizeof(bbuf),0);
break;
case 'q':
printf("退出\n");
close(cfd);
return 0;
default:
break;
}
}
//關閉套接字
close(cfd);

return 0;
}

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

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

相關文章

案例開發 - 日程管理 - 第七期

項目改造&#xff0c;進入 demo-schedule 項目中&#xff0c;下載 pinia 依賴在 main.js 中開啟 piniaimport { createApp } from vue import App from ./App.vue import router from ./router/router.js import {createPinia} from pinialet pinia createPinia() const app …

infinityfree 網頁連接內網穿透 localtunnel會換 還是用frp成功了

模型庫首頁 魔搭社區 fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. 我嘗試用本機ipv6&#xff0c;失敗了 配置文件 - ChmlFrp 香港2才能用 只支持https CNAME解析 | 怊貓科技 | 文檔 How to create …

批量更新數據:Mybatis update foreach 和 update case when 寫法及比較

在平常的開發工作中&#xff0c;我們經常需要批量更新數據&#xff0c;業務需要每次批量更新幾千條數據&#xff0c;采用 update foreach 寫法的時候&#xff0c;接口響應 10s 左右&#xff0c;優化后&#xff0c;采用 update ... case when 寫法&#xff0c;接口響應 2s 左右。…

Java基礎篇04:數組、二維數組

1 數組 數組是一個數據容器&#xff0c;可用來存儲一批同類型的數據。 1.1 數組的定義方式 靜態初始化 數據類型[][] 數組名 {元素1&#xff0c;元素2&#xff0c;元素3}; string[][] name {"wfs","jsc","qf"} 動態初始化 數據類型[][] 數組名…

unity開發類似個人網站空間

可以用 Unity 開發 “個人網站空間” 類工具&#xff0c;但需要結合其技術特性和適用場景來判斷是否合適。以下從技術可行性、優勢、局限性、適用場景四個方面具體分析&#xff1a;一、技術可行性Unity 本質是游戲引擎&#xff0c;但具備開發 “桌面應用” 和 “交互內容” 的能…

SDK游戲盾如何實現動態加密

SDK游戲盾的動態加密體系通過??密鑰動態管理、多層加密架構、協議混淆、AI自適應調整及設備綁定??等多重機制協同作用&#xff0c;實現對游戲數據全生命周期的動態保護&#xff0c;有效抵御中間人攻擊、協議破解、重放攻擊等威脅。以下從核心技術與實現邏輯展開詳細說明&am…

TensorFlow平臺介紹

什么是 TensorFlow&#xff1f; TensorFlow 是一個由 Google Brain 團隊 開發并維護的 開源、端到端機器學習平臺。它的核心是一個強大的數值計算庫&#xff0c;特別擅長于使用數據流圖來表達復雜的計算任務&#xff0c;尤其適合大規模機器學習和深度學習模型的構建、訓練和部署…

TENGJUN防水TYPE-C連接器:立貼結構與IPX7防護的精密融合

在戶外電子、智能家居、車載設備等對連接可靠性與空間適配性要求嚴苛的場景中&#xff0c;連接器不僅是信號與電力傳輸的“橋梁”&#xff0c;更需抵御潮濕、粉塵等復雜環境的侵蝕。TENGJUN防水TYPE-C連接器以“雙排立貼”為核心設計&#xff0c;融合鋅合金底座、精準尺寸控制與…

Spring Boot + Vue 項目中使用 Redis 分布式鎖案例

加鎖使用命令&#xff1a;set lock_key unique_value NX PX 1000NX:等同于SETNX &#xff0c;只有鍵不存在時才能設置成功PX&#xff1a;設置鍵的過期時間為10秒unique_value&#xff1a;一個必須是唯一的隨機值&#xff08;UUID&#xff09;&#xff0c;通常由客戶端生成…

微信小程序攜帶token跳轉h5, h5再返回微信小程序

需求: 在微信小程序內跳轉到h5, 瀏覽完后點擊返回按鈕再返回到微信小程序中 微信小程序跳轉h5: 微信小程序跳轉h5,這個還是比較簡單的, 但要注意細節 一、微信小程序代碼 1.新建跳轉h5頁面, 新建文件夾,新建page即可 2.使用web-view標簽 wxml頁面 js頁面 到此為止, 小程序…

【機器學習】通過tensorflow實現貓狗識別的深度學習進階之路

【機器學習】通過tensorflow實現貓狗識別的深度學習進階之路 簡介 貓狗識別作為計算機視覺領域的經典入門任務&#xff0c;不僅能幫助我們掌握深度學習的核心流程&#xff0c;更能直觀體會到不同優化策略對模型性能的影響。本文將從 “從零搭建簡單 CNN” 出發&#xff0c;逐步…

異步處理(前端面試)

Promise 1&#xff1a;使用promise原因 了解回調地獄【什么是回調地獄】 1&#xff1a;回調地獄是異步獲取結果后&#xff0c;為下一個異步函數提供參數&#xff0c;層層回調嵌入回調 2&#xff1a;導致回調層次很深&#xff0c;代碼維護特別困難 3&#xff1a;在沒有ES6時&…

3種XSS攻擊簡單案例

1、接收cookie端攻擊機上用python寫個接收web程序flask from flask import Flask, request, Responseapp Flask(__name__)app.route(/) def save_cookie():cookie request.args.get(cookie, )if cookie:with open(/root/cookies.txt, a) as f:f.write(f"{cookie}\n"…

Docker 部署生產環境可用的 MySQL 主從架構

簡介跨云服務器一主一從&#xff0c;可以自己按照邏輯配置多個從服務器 假設主服務器ip: 192.168.0.4 從服務器ip&#xff1a;192.168.0.5 系統 CentOS7.9 &#xff08;停止維護了&#xff0c;建議大家用 Ubuntu 之類的&#xff0c;我這個沒辦法&#xff0c;前人在云服務器上…

DeepResearch(上)

概述 OpenAI首先推出Deep Research Agent&#xff0c;深度研究智能體&#xff0c;簡稱DRA。 通過自主編排多步驟網絡探索、定向檢索和高階綜合&#xff0c;可將大量在線信息轉換為分析師級別的、引用豐富的報告&#xff0c;將數小時的手動桌面研究壓縮為幾分鐘。 作為新一代…

附050.Kubernetes Karmada Helm部署聯邦及使用

文章目錄karmada簡介karmada概述karmada Helm部署Kubernetes karmada介紹基礎準備Kubernetes集群獲取chat包正式部署karmada使用karmada納管集群查看memeber集群導出kubeconfig切換集群測試應用karmada簡介 karmada概述 參考&#xff1a;附049.Kubernetes Karmada Local-up部…

必知必會:基于Transformer 的預訓練語言模型如何區分文本位置(sinusoidal位置編碼、原理和詳細推導)

預訓練位置編碼 基于Transformer 的預訓練語言模型如何區分文本位置? 基于 Transformer 的預訓練語言模型主要通過位置編碼來區分文本位置。Transformer 核心的自注意力機制本身并不考慮詞的順序&#xff0c;它對輸入序列的處理是與位置無關的。在 query 和 key 的矩陣乘法之后…

redis key過期后會立馬刪除嗎

Redis 的 Key 過期后不會立即被刪除。Redis 采用了一種結合 ?惰性刪除 (Lazy Expiration)?? 和 ?定期刪除 (Periodic Expiration)?? 的策略來管理過期 Key 的回收&#xff0c;這是為了在內存管理、性能和 CPU 開銷之間取得平衡。&#x1f4cc; Redis 過期 Key 刪除的兩種…

關于 React 19 的四種組件通信方法

注意&#xff1a;使用的是UI庫是 antd-mobile1.父子級組件通信父組件單向數據流&#xff1a;數據從父組件流向子組件。支持多種數據類型&#xff1a;字符串、數字、對象、數組、函數等。只讀性&#xff1a;子組件不能直接修改 props 中的數據。import { useState } from react …

OC-單例模式

文章目錄單例模式定義特點使用原因缺點模式介紹懶漢模式同步鎖實現dispatch_once餓漢模式實現總結懶漢模式優點缺點餓漢模式優點缺點單例模式 定義 單例模式&#xff0c;簡單的說就是一個類始終只對應同一個對象&#xff0c;每次獲取這個類的對象獲得的都是同一個實例 如果一…