网络编程9月3日

news2024/11/12 17:53:24

1,思维导图2,TCP通信

服务器端

#include<myhead.h>
#define JCHM 4514
#define IPDZ "192.168.0.113"
#define BACKLOG 5
int main(int argc,const char *argv[])
{
	int oldfd=socket(AF_INET,SOCK_STREAM,0);
	if(oldfd==-1)
	{
		perror("socket");
		return -1;
	}
	printf("旧套接字创建成功\n");
	struct sockaddr_in sin = {
		.sin_family = AF_INET,
		.sin_port = htons(JCHM),
		.sin_addr.s_addr= inet_addr(IPDZ)
	};
	int sum1=bind(oldfd,(struct sockaddr *)&sin,sizeof(sin));
	if(sum1==-1)
	{
		perror("bind");
		return -1;
	}
	printf("主机IP和端口号绑定成功\n");
	int sum2=listen(oldfd,BACKLOG);
	if(sum2==-1)
	{
		perror("listen");
		return -1;
	}
	printf("监听客户端请求\n");
	int newfd;
	struct sockaddr_in cin;
	socklen_t cinlen=sizeof(cin);
	newfd = accept(oldfd,(struct sockaddr *)&cin,&cinlen);
	if(newfd==-1)
	{
		perror("accept");
		return -1;
	}
	printf("%s:%d客户端发来请求\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port));
	char buff[1024]="";
	while(1)
	{
		int len = recv(newfd,buff,sizeof(buff),0);
		printf("客户端发来消息:%s\n",buff);
		if(len==0)
		{
			printf("客户端已退出\n");
			break;
		}
		memset(buff,0,sizeof(buff));
	}
	close(newfd);
	close(oldfd);


	return 0;
}

客户端

#include<myhead.h>
#define JCHM 4514
#define IPDZ "192.168.0.113"
int main(int argc,const char *argv[])
{
	int oldfd=socket(AF_INET,SOCK_STREAM,0);
	if(oldfd==-1)
	{
		perror("oldfd");
		return -1;
	}
	struct sockaddr_in cin = {
		.sin_family = AF_INET,
		.sin_port = htons(JCHM),
		.sin_addr.s_addr = inet_addr(IPDZ)
	};
	
	int sum = connect(oldfd,(struct sockaddr *)&cin,sizeof(cin));
	if(sum==-1)
	{
		perror("connect");
		return -1;
	}
	printf("连接服务器成功\n");
	char buff[1024]="";
	while(1)
	{
		memset(buff,0,sizeof(buff));
		fgets(buff,sizeof(buff),stdin);
		send(oldfd,buff,sizeof(buff),0);
	}
	close(oldfd);
	return 0;
}

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

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

相关文章

猴子排序:一种理论上的排序算法

猴子排序&#xff1a;一种理论上的排序算法 在编程和算法的世界里&#xff0c;总有一些有趣的算法让人忍俊不禁&#xff0c;同时又让人深思。今天&#xff0c;我们来聊聊一种特别的排序算法——猴子排序&#xff08;Bogosort&#xff09;&#xff0c;也常被戏称为瞎子排序、波…

解放你的带宽和内存:GZIP在解决Redis大Key方面的应用

首发公众号&#xff1a;赵侠客 引用 目前主流HTTP协议接口都是使用JSON格式做数据交换的&#xff0c;JSON数据格式有着结构简单、可读性高、跨平台&#xff0c;易解析等优点&#xff0c;同时也存在着冗余数据会占用非常多的储存空间的问题&#xff0c;这大大增加了JSON格式数据…

MATLAB eig 函数简介:计算特征值和特征向量

在数据科学、工程学和数学中&#xff0c;特征值和特征向量是理解和分析矩阵行为的核心概念。MATLAB 的 eig 函数是处理这些概念的强大工具。本文将介绍 eig 函数的基本用法&#xff0c;并通过示例展示如何使用它来计算特征值和特征向量。 什么是特征值和特征向量&#xff1f; …

应用层(Web与HTTP)

目录 常见术语 1.HTTP概况 2.HTTP连接 非持久HTTP流程 响应时间模型 持久HTTP 3.HTTP报文 3.1HTTP请求报文 3.2HTTP响应报文 HTTP响应状态码 4.Cookies&#xff08;用户-服务器状态&#xff09; cookies&#xff1a;维护状态 Cookies的作用 5.Web缓冲&#xff08;…

CDGA|数据治理:构建高效数据管理体系的实践路径

在当今数字化时代&#xff0c;数据已成为企业最宝贵的资产之一&#xff0c;其质量、安全性和有效利用率直接影响着企业的决策能力、运营效率和市场竞争力。因此&#xff0c;数据治理作为确保数据质量、促进数据价值最大化的关键环节&#xff0c;其重要性日益凸显。本文将从几个…

UE4_地形_悬崖拉伸的解决

参考教程 【虚幻5】UE5_UE4_解决悬崖地形贴图拉伸_哔哩哔哩_bilibili 纹理处理 | 虚幻引擎 4.27 文档 | Epic Developer Community (epicgames.com) 主要通过蓝图节点解决&#xff1a;WorldAlignedTexture WorldAlignedTexture&#xff08;全局一致纹理&#xff09;函数用于…

【自用19.1】C++构造函数

构造函数的作用 在创建一个新的对象时&#xff0c;自动调用的函数&#xff0c;用来进行“初始化”工作&#xff1a; 对这个对象内部的数据成员进行初始化。 构造函数的特点 自动调用&#xff08;在创建新对象时&#xff0c;自动调用&#xff09;构造函数的函数名&#xff0c…

乐凡三防|国产化浪潮下的三防平板

在当前的科技环境下&#xff0c;国产化成为了一个热门话题&#xff0c;尤其在三防平板领域&#xff0c;国产化不仅意味着技术的自给自足&#xff0c;更是国家信息安全与产业自主可控的重要体现。三防平板&#xff0c;即具备防水、防尘、防震功能的平板电脑&#xff0c;其全国产…

02-数组

概述 数组是一个由固定长度的特定类型元素组成的序列&#xff0c;一个数组可以由零个或多个元素组成&#xff0c;一旦声明了&#xff0c;数组的长度就固定了&#xff0c;不能动态变化。 len() 和 cap() 返回结果始终一样。 声明数组 package mainimport ("fmt" )f…

【算法专场】模拟(上)

目录 ​前言 模拟算法 1576. 替换所有的问号 495. 提莫攻击 1688. 比赛中的配对次数 6. Z 字形变换 前言 我们在有时候会看到刷题网站上面看到一些已经把题意讲的很明确的题目&#xff0c;并且一般这种不怎么需要利用那些复杂的算法&#xff0c;只需要我们按照着题目的意…

宝藏!《联盟现代控制特训班题库》(麒麟篇) 习题部分:甄选内容

本文内容&#xff0c;全部选自联盟自动化考研联盟企业店( 店)的&#xff1a;初试《现代控制特性班题库》(麒麟篇)&#xff0c;分为讲义和习题两个部分&#xff0c;本文为习题部分的甄选内容&#xff0c;一本书帮你学透现控。 目录 Part1&#xff1a;资料封面&目录 习题部…

Kafka大厂面试14问(附答案)

怎么保证顺序消费&#xff1f; 同一个生产者发送到同一分区的消息&#xff0c;先发送的比后发送的offset要小。同一生产者发送到不同分区的消息&#xff0c;消息顺序无法保证。 怎么解决这个问题&#xff1f; 给一个topic只设置一个分区 相同key会发给一个分区 怎么保证幂…

python常用的列表,元组,字符串,集合,字典的应用方法

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6049c6f7ca2d4a0ca4911562dea7a8cd.png 素材内容来自——黑马程序员

【Altium Designer程序开发】生成XML多级数据库文件 V2.0

此工具用于生成多级多节点的XML数据库文件&#xff0c;主要功能用于测试XML文件的生成速度的&#xff0c;运行环境在Altium Designer中&#xff0c;可用于Altium Designer全系列的版本中。 程序界面如下图所示&#xff0c;每一级节点表示每个父Node的子Node的数量&#xff0c;节…

FRP内网穿透与神卓互联,优势对比

本文介绍分析了当前市面上两款常用的内网穿透工具 frp内网穿透介绍 一、概述 frp&#xff08;Fast Reverse Proxy&#xff09;是一款高性能的反向代理应用&#xff0c;主要用于实现内网穿透功能。通过frp&#xff0c;用户可以将内网中的服务器或服务暴露到公网上&#xff0c;…

跨境电商运营解决方案:反向代购系统物流集运一体化

跨境电商两种模式&#xff0c;一种是国外商品卖到国内&#xff0c;海淘代购。另一种是国内商品卖到国外&#xff0c;也叫反向代购。 什么是反向代购 反向代购是近年兴起的一种购物模式&#xff0c;是帮国外客户购买中国商品。主要是通过外贸代购系统&#xff0c;把淘宝、天猫…

AEC-Q100车规芯片验证

AEC-Q100是汽车电子协会(Automotive Electronics Council,简称AEC)制定的车规级芯片验证标准,它主要针对车载应用的集成电路产品所设计的一套应力测试标准,旨在通过严格的测试流程,确保芯片在复杂多变的汽车环境下具备高可靠性、高安全性和高稳定性。 验证流程 定义规格:…

哪款清理猫咪浮毛效果好?希喂、霍尼韦尔、美的宠物空气净化器PK

最近在宠物领域&#xff0c;宠物空气净化器的讨论热度很高&#xff0c;不少铲屎官们都有购买的意向。身为三猫孩子的家长&#xff0c;养宠以来市面上所有的猫毛清理工具我都用过&#xff0c;这种新兴产品肯定也不会错过。我结合自身情况和预算&#xff0c;对市面上的品牌进行筛…

UI自动化-元素动作WebElement源码类

UI自动化设计元素动作所用到的源码是WebElement源码类 其中用的最多的为前9个&#xff0c;后续是前端开发时常用 webelement源码类 元素动作都是webelement源码类中 1、往输入框里输入内容&#xff0c;元素单击后输入内容&#xff1a;key的值是要查找的值 获取标签的名称 tagn…

【Linux网络编程】协议|OSI模型|TCP/IP模型|局域网通信|跨网络通信|地址管理|流程图

目录 ​编辑 一&#xff0c;协议 协议分层 二&#xff0c;OSI七层模型 三&#xff0c;TCP/IP五层&#xff08;或四层&#xff09;模型 TCP/IP各个层次一些名词解释 为什么要有TCP/IP协议 TCP/IP协议栈与操作系统的宏观关系示意图 四&#xff0c;网络传输基本流程 局…