網絡編程作業day2

1.將TPC和UDP通信模型各敲兩遍

(1)TPC通信模型:

服務器代碼:

#include <myhead.h>
#define SERVER_IP "192.168.125.136"
#define SERVER_PORT 1314
int main(int argc, const char *argv[])
{//1、創建用于監聽的套接字int sfd=socket(AF_INET,SOCK_STREAM,0);if(sfd==-1){perror("socket error");return -1;}//2、綁定ip和端口號//先定義地址信息結構體struct sockaddr_in sin;sin.sin_family=AF_INET;//地址族sin.sin_port=htons(SERVER_PORT);//服務器端口號sin.sin_addr.s_addr=inet_addr(SERVER_IP);//服務器ip地址//再進行綁定if(bind(sfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("bind error");return -1;}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           //3、設置套接字為監聽狀態if(listen(sfd,128)==-1){perror("listen error");return -1;}//4、服務器接收客戶端連接,并獲獲取客戶端的地址信息//定義客戶端地址信息結構體struct sockaddr_in cin;int size=sizeof(cin);int newfd=accept(sfd,(struct sockaddr*)&cin,&size);if(newfd==-1){perror("nwefd error");return -1;}printf("連接的客戶端的ip地址:%s,端口號:%d\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port));//5、交互數據char rbuf[1024];while(1){//服務器接收客戶端發來的數據存入到rbuf中bzero(rbuf,sizeof(rbuf));//清空容器int res=recv(newfd,rbuf,sizeof(rbuf),0);//阻塞接收if(strcmp(rbuf,"end")==0){break;}printf("接收到的數據:%s\n",rbuf);//服務器回復客戶端已收到數據char wbuf[100]="已收到數據";send(newfd,wbuf,sizeof(wbuf),0);}//6、關閉套接字close(sfd);close(newfd);return 0;
}

客戶端代碼:

#include <myhead.h>
#define SERVER_IP "192.168.125.136"
#define SERVER_PORT 1314
int main(int argc, const char *argv[])
{//1、創建套接字int sfd=socket(AF_INET,SOCK_STREAM,0);if(sfd==-1){perror("socket error");return -1;}//2、綁定ip和端口號(可選)   //3、客戶端綁定服務器//定義需要綁定的地址信息結構體struct sockaddr_in sin;sin.sin_family=AF_INET;//地址族sin.sin_port=htons(SERVER_PORT);//服務器端口號sin.sin_addr.s_addr=inet_addr(SERVER_IP);//服務器ip地址//連接if(connect(sfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("connect error");return -1;}//4、交互數據char rbuf[1024];while(1){//從終端接的數據存入到rbuf中bzero(rbuf,sizeof(rbuf));//清空容器printf("請輸入:");fgets(rbuf, sizeof(rbuf),stdin); rbuf[strlen(rbuf)-1]=0;if(strcmp(rbuf,"end")==0){break;}send(sfd,rbuf,sizeof(rbuf),0);printf("發送成功\n");//客戶端從服務器接收數據char wbuf[100];bzero(wbuf,sizeof(wbuf));recv(sfd,wbuf,sizeof(wbuf),0);printf("收到服務器信息:%s\n",wbuf);}//5、關閉套接字close(sfd);return 0;
}

(2)UDP通信模型:

服務器代碼:

#include <myhead.h>
#define SERVER_IP "192.168.101.104"
#define SERVER_PORT 1314
int main(int argc, const char *argv[])
{//1、創建套接字int sfd=socket(AF_INET,SOCK_DGRAM,0);if(sfd==-1){perror("socket error");return -1;}//2、綁定ip和端口號//先定義地址信息結構體struct sockaddr_in sin;sin.sin_family=AF_INET;//地址族sin.sin_port=htons(SERVER_PORT);//服務器端口號sin.sin_addr.s_addr=inet_addr(SERVER_IP);//服務器ip地址//再進行綁定if(bind(sfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("bind error");return -1;}    //3、收發數據char rbuf[1024];//定義容器接收對端地址信息結構體struct sockaddr_in cin;int size=sizeof(cin);while(1){bzero(rbuf, sizeof(rbuf));//接收數據recvfrom(sfd, rbuf, sizeof(rbuf),0,(struct sockaddr*)&cin, &size);printf("收到客戶端發來的消息為:%s\n", rbuf);if(strcmp(rbuf,"end")==0){break;}//回復已收到char wbuf[100]="已收到數據";        sendto(sfd, wbuf, sizeof(wbuf), 0, (struct sockaddr*)&cin,size);         }//4、關閉套接字close(sfd);return 0;
}

客戶端代碼:

#include <myhead.h>
#define SERVER_IP "192.168.101.104"
#define SERVER_PORT 1314
int main(int argc, const char *argv[])
{//1、創建套接字int sfd=socket(AF_INET,SOCK_DGRAM,0);if(sfd==-1){perror("socket error");return -1;}//2、綁定ip和端口號(可選)   //定義服務器的地址信息結構體struct sockaddr_in sin;sin.sin_family = AF_INET;sin.sin_port = htons(SERVER_PORT);sin.sin_addr.s_addr = inet_addr(SERVER_IP);int maxsize=sizeof(sin);//3、交互數據char rbuf[1024];while(1){//從終端接的數據存入到rbuf中bzero(rbuf,sizeof(rbuf));//清空容器printf("請輸入:");fgets(rbuf, sizeof(rbuf),stdin); rbuf[strlen(rbuf)-1]=0;sendto(sfd,rbuf,sizeof(rbuf),0,(struct sockaddr*)&sin, sizeof(sin));//客戶端數據發送到服務器printf("發送成功\n");if(strcmp(rbuf,"end")==0){break;}//客戶端從服務器接收數據char wbuf[100];bzero(wbuf,sizeof(wbuf));recvfrom(sfd,wbuf,sizeof(wbuf),0,(struct sockaddr*)&sin,&maxsize);printf("收到服務器信息:%s\n",wbuf);}//4、關閉套接字close(sfd);return 0;
}

思維導圖

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

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

相關文章

CLion 2023:專注于C和C++編程的智能IDE mac/win版

JetBrains CLion 2023是一款專為C和C開發者設計的集成開發環境&#xff08;IDE&#xff09;&#xff0c;它集成了許多先進的功能&#xff0c;旨在提高開發效率和生產力。 CLion 2023軟件獲取 CLion 2023的智能代碼編輯器提供了豐富的代碼補全和提示功能&#xff0c;使您能夠更…

統計業務流量的毫秒級峰值 - 華為機試真題題解

考試平臺&#xff1a; 時習知 分值&#xff1a; 200分&#xff08;第二題&#xff09; 考試時間&#xff1a; 兩小時&#xff08;共3題&#xff09; 題目描述 業務模塊往外發送報文時&#xff0c;有時會出現網卡隊列滿而丟包問題&#xff0c;但從常規的秒級流量統計結果看&…

Mybatis-Plus介紹

目錄 一、Mybatis-Plus簡介 1.1、介紹 1.2、特性 1.3、架構 1.4、Mybatis-Plus與Mybatis的區別 二、快速入門 2.1、首先創建數據庫mybatis-plus 2.2、創建user表 2.3、插入數據 2.4、創建Spring-Boot項目 2.5、添加依賴 2.6、連接數據庫 一、Mybatis-Plus簡介 1.1、…

代碼隨想錄第46天|139.單詞拆分 多重背包理論基礎 背包總結

文章目錄 單詞拆分思路&#xff1a;代碼 多重背包≈0-1背包題目代碼 背包總結 單詞拆分 3 思路&#xff1a; 代碼 class Solution {public boolean wordBreak(String s, List<String> wordDict) {HashSet<String> set new HashSet<>(wordDict);boolean[]…

15個非常實用的JavaScript技巧,提高你的開發效率

本文我們將探討15個實用的JavaScript技巧&#xff0c;希望它們可以幫你提高開發效率&#xff0c;有用的話點贊收藏~。 1. 反轉字符串 你有時候可能需要將字符串顛倒過來。在JavaScript中&#xff0c;有一個巧妙的一行代碼可以實現這個目標&#xff1a; const reversedString…

sheng的學習筆記-卷積神經網絡經典架構-LeNet-5、AlexNet、VGGNet-16

目錄&#xff1a;目錄 看本文章之前&#xff0c;需要學習卷積神經網絡基礎&#xff0c;可參考 sheng的學習筆記-卷積神經網絡-CSDN博客 目錄 LeNet-5 架構圖 層級解析 1、輸入層&#xff08;Input layer&#xff09; 2、卷積層C1&#xff08;Convolutional layer C1&…

Dockerfile(5) - CMD 指令詳解

CMD 指定容器默認執行的命令 # exec 形式&#xff0c;推薦 CMD ["executable","param1","param2"] CMD ["可執行命令", "參數1", "參數2"...]# 作為ENTRYPOINT的默認參數 CMD ["param1","param…

VUE3自定義文章排行榜的簡單界面

文章目錄 一、代碼展示二、代碼解讀三、結果展示 一、代碼展示 <template><div class"article-ranking"><div class"header"><h2 class"title">{{ title }}</h2></div><div class"ranking-list&qu…

根據A(String)字段去重,并且選擇B(Ingter)字段最大的值

數據格式&#xff1a; [SkillDTO(Job電線工, rankGrade高級工, r4), SkillDTO(Job監察員, rankGrade技師, r5), SkillDTO(Job監察員, rankGrade高級工, r4), SkillDTO(skillJob監察員, rankGrade中級工, r3)] List<SkillDTO> resultList SkillDTOList.stream().coll…

電子技術——PN結電流關系方程

電子技術——PN結電流關系方程 平衡狀態下的PN結 平衡狀態下的PN結界面總共有兩種電流&#xff0c;一種為 擴散電流 另一種為 漂移電流 。兩種電流形成的平衡區域稱為 耗散區 。 在平衡狀態擴散電流等于漂移電流&#xff0c;此時靜電流為0&#xff0c;PN結外部沒有電流&…

Java SPI:Service Provider Interface

SPI機制簡介 SPI&#xff08;Service Provider Interface&#xff09;&#xff0c;是從JDK6開始引入的&#xff0c;一種基于ClassLoader來發現并加載服務的機制。 一個標準的SPI&#xff0c;由3個組件構成&#xff0c;分別是&#xff1a; Service&#xff1a;是一個公開的接口…

Java ElasticSearch面試題

Java ElasticSearch面試題 前言1、ElasticSearch是什么&#xff1f;2. 說說你們公司ES的集群架構&#xff0c;索引數據大小&#xff0c;分片有多少 &#xff1f;3. ES的倒排索引是什么&#xff1f;4. ES是如何實現 master 選舉的?5. 描述一下 ES索引文檔的過程&#xff1a;6、…

Centos系統(Linux)掛載硬盤/數據盤詳細操作和開機自動掛載的兩種方式

前提&#xff1a;已經做好磁盤陣列&#xff0c;將磁盤劃分好 磁盤初始化操作步驟&#xff08;如果已經可以正常掛載可跳過)&#xff1a; 使用fdisk -l命令查看多出來的大容量的磁盤名稱&#xff08;如果多塊磁盤&#xff0c;查看需要掛載的磁盤名稱&#xff09;&#xff0c;一…

embedding的原理和結構

embedding(向量化)是一個將數據轉化為向量矩陣的過程&#xff0c;作用是&#xff1a;將高維稀疏向量轉化為稠密向量&#xff0c;從而方便下游模型處理 簡單的概念大家應該都知道了&#xff0c;以LLM為例 輸入&#xff1a;文字 模型&#xff1a;embedding 輸出&#xff1a;向量…

c++高精度乘法的原理及c++代碼講解

高精度乘法的原理主要是利用數學中乘法的基本原理&#xff0c;將大整數拆分成各個位數的相乘&#xff0c;然后累加得到最終結果。其過程如下&#xff1a; 將兩個大整數相乘&#xff0c;從低位開始逐位相乘&#xff0c;得到部分乘積&#xff1b;將每一位的部分乘積相加&#xf…

【Emgu CV教程】7.8、圖像銳化(增強)之同態濾波

文章目錄 一、同態濾波大體原理二、代碼三、效果舉例 一、同態濾波大體原理 之前介紹的幾個銳化、增強方法&#xff0c;包括更早之前介紹的圖像模糊方法&#xff0c;都是基于空間域進行處理&#xff0c;也就是直接對目標點周邊像素值進行各種數學運算。而這篇文章提到的同態濾…

學習計算機的好處

之前寫了那么多計算機知識&#xff0c;卻沒有一篇寫我學計算機的初衷。 掌握計算機技術不僅可以提高我們的就業能力和競爭力&#xff0c;同時有助于我們更好地認識世界&#xff0c;提高工作效率和解決問題的能力&#xff0c;更好地利用科技創造更美好的未來。 因此&#xff0c…

pyvisa庫實現儀器控制

python控制儀器實現自動化常用pyvisa庫&#xff0c;基本控制可大致分為創建儀器控制對象、寫入控制指令、讀取儀表信息和查詢儀表狀態&#xff0c;下面進行基本的講解。 pyvisa庫創建儀表控制對象 import tkinter.messagebox import pyvisaclass InstrumentControl:inst Non…

喜迎喬遷,開啟新章 ▏易我科技新辦公區喬遷慶典隆重舉行

2024年1月18日&#xff0c;易我科技新辦公區喬遷慶典在熱烈而喜慶的氛圍中隆重舉行。新辦公區的投入使用&#xff0c;標志著易我科技將以嶄新姿態邁向新的發展階段。 ▲ 易我科技新辦公區 隨著公司業務的不斷發展和壯大&#xff0c;為了更好地適應公司發展的需要&#xff0c;…

2024-02-29(Flink)

1.Flink原理&#xff08;角色分工&#xff09; 2.Flink執行流程 on yarn版&#xff1a; 3.相關概念 1&#xff09;DataFlow&#xff1a;Flink程序在執行的時候會被映射成一個數據流模型&#xff1b; 2&#xff09;Operator&#xff1a;數據流模型中的每一個操作被稱作Operat…