网络编程作业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.mzph.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[]…

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…

电子技术——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、…

【Emgu CV教程】7.8、图像锐化(增强)之同态滤波

文章目录 一、同态滤波大体原理二、代码三、效果举例 一、同态滤波大体原理 之前介绍的几个锐化、增强方法&#xff0c;包括更早之前介绍的图像模糊方法&#xff0c;都是基于空间域进行处理&#xff0c;也就是直接对目标点周边像素值进行各种数学运算。而这篇文章提到的同态滤…

喜迎乔迁,开启新章 ▏易我科技新办公区乔迁庆典隆重举行

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…

npm使用国内淘宝镜像的方法整理

命令配置安装&#xff1a; 淘宝镜像&#xff1a; npm config set registry https://registry.npm.taobao.org/ 官方镜像&#xff1a; npm config set registry https://registry.npmjs.org 通过cnpm安装&#xff1a; npm install -g cnpm --registryhttps://registry.npm.…

PTA L2-003 月饼 (附坑点说明)

月饼是中国人在中秋佳节时吃的一种传统食品&#xff0c;不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量&#xff0c;请你计算可以获得的最大收益是多少。 注意&#xff1a;销售时允许取出一部分库存。样例给出的情形是这样的&#…

【Python】PyGameUI控件

哈里前段时间写了一个windows平板上自娱自乐&#xff08;春节和家人一起玩&#xff09;基于pygame的大富翁游戏。 pygame没有按钮之类的UI控件&#xff0c;写起来不怎么顺手。就自己写一个简单的框架。 仓库地址 哈里PygameUi: pygame ui封装自用 (gitee.com) 使用示例 示…

上海亚商投顾:沪指终结月线6连阴 北向资金净买入超160亿

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日低开高走&#xff0c;沪指重新站上3000点&#xff0c;深成指、创业板指大涨超3%。半导体产业链全…

探索那些能唤起情感共鸣的壁纸

1、方小童在线工具集 网址&#xff1a; 方小童 该网站是一款在线工具集合的网站&#xff0c;目前包含PDF文件在线转换、随机生成美女图片、精美壁纸、电子书搜索等功能&#xff0c;喜欢的可以赶紧去试试&#xff01;

Python:关于数据服务中的Web API的设计

搭建类似joinquant、tushare类似的私有数据服务应用&#xff0c;有以下一些点需要注意&#xff1a; 需要说明的是&#xff0c;这里讨论的是web api前后端&#xff0c;当然还有其它方案&#xff0c;thrift&#xff0c;grpc等。因为要考虑到一鱼两吃&#xff0c;本文只探讨web ap…

高项软考电子版论文答题纸(附下载)

24年软考又要来了&#xff0c;作为高项软考的拦路虎&#xff0c;论文你准备好了吗&#xff1f;&#xff01;记住在开始考试之前一定要用论文答题纸上把准备好的论文&#xff0c;在规定的时间内写上几遍&#xff0c;一是现在很少动笔写字了。二是、熟悉一下论文考试的感觉。 准备…