linux网络编程6

24.9.22学习目录

  • 一.TCP(续)
    • 1.并发服务器
      • 进程实现
      • 多线程实现
  • 二.Web服务器
    • 1.HTTP协议
      • web编程
  • 三.网络通信过程
    • 1.设备介绍

一.TCP(续)

1.并发服务器

TCP原本不是并发服务器,同一时间只能与一个客户端连接;

方法:
使用多进程实现TCP并发服务器;
使用多线程实现TCP并发服务器;

进程实现

//服务器中函数使用的流程
socket();
bind();
listen();
//使用信号的方法处理僵尸进程
signal();//创建子进程,用于与每个客户连接
while(1)
{accept();pid = fork();if(pid > 0){}else if(pid == 0){//子进程中完成接收或发送操作while(1){recv()/send();}}}
close();

多线程实现

将多进程实现中的pid = fork();改为创建线程pthread_create();,并将线程中需要完成的步骤写在一个方法中

void *thread_fun(void *arg)
{while(1){recv()/send();}
}//服务器中函数使用的流程
socket();
bind();
listen();
//使用信号的方法处理僵尸进程
signal();//创建子进程,用于与每个客户连接
while(1)
{accept();pthread_create(,,thread_fun,);
}
close();

二.Web服务器

Web服务器是使用HTTP协议与客户端浏览器进行信息交流;
其不仅仅能存储信息,还能在用户通过web浏览器提供的信息基础上运行脚本和程序;

1.HTTP协议

其是建立在TCP的基础上;
是一种规定浏览器和万维网服务器之间互相通信的工作,通过因特网传送数据的协议;

特点:
支持C/S架构;
简单快速:当客户向服务器请求服务时,只需要传送请求发和路径;
无连接:限制每层连接只处理一个请求;
无状态:即如果后续处理需要前面的信息,它必须重传,这会导致每次连接传送的数据量增大;

web编程

在浏览器上输入的格式:
hhtp://IP地址:端口号/页面文件

服务器应答的格式:
当请求成功:

"HTTP/1.1 200 OK\r\n"
"Content-type:text/html\r\n"

当请求失败时:

"HTTP/1.1 404 Not Found\r\n"
"Content-type:text/html\r\n"

三.网络通信过程

1.设备介绍

(1)交换机
是一个扩大网络的器材,可以把更多的计算机等网络设备连接到当前的网络中;
具备有性价比高、高度灵活、相对简单、易于实现等特点;

功能:

  • 转发过滤:能过滤并非转发到当前端口的信息;
  • 学习功能:对于连接到交换机的设备,都将其设备的MAC地址保存在其中的MAC地址表中
  • 还可以对VLAN的支持、对链路汇聚的支持、甚至还有防火墙的功能

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

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

相关文章

Mac系统Docker中SQLserver数据库文件恢复记录

Mac系统Docker中SQLserver数据库文件恢复记录 Mac想要安装SQLsever,通过docker去拉去镜像是最简单方法。 一、下载Docker Docker 下载安装: 需要‘科学上网’ 才能访问到docker官网。( https://docs.docker.com/desktop/install/mac-ins…

18.2K Star,AI 高效视频监控摄像头

Hi,骚年,我是大 G,公众号「GitHub 指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 导语 在家庭和企业安防领域,实时视频监控是保障安全的核…

2024 SNERT 预备队招新 CTF 体验赛-Web

目录 1、robots 2、NOF12 3、get_post 4、好事慢磨 5、uploads 6、rce 7、ezsql 8、RCE 1、robots robots 协议又叫爬虫协议,访问 robots.txt 继续访问 /JAY.php 拿到 flag:flag{hello_Do_YOU_KONw_JAY!} 2、NOF12 F12 和右键都被禁用 方法&#…

22、Raven2

难度 中 目标 root权限 4个flag 使用Virtualbox启动 kali 192.168.86.105 靶机 192.168.86.106 信息收集 看到111端口有一个rpc相关的东西,去网上查看了一下是什么服务 通过在网上搜索发现这是一个信息泄露的漏洞,上面的这个端口其实就是泄露的端口和…

【Spring 底层原理】手搓一个Spring框架

文章目录 准备工作Spring 框架到底在干啥?几个概念辨析注解的定义自定义核心注解配置类启动类辅助类 Spring 容器XxxAware 回调机制初始化机制前置、后置处理器完整的容器代码源码下载 最近工作接触到的知识比较底层,因此为了突破瓶颈,彻底搞…

ubuntu+MobaXterm+ssh+运行Qt(成功版)

点击上方"蓝字"关注我们 01、ubuntu连接SSH >>> 通过串口工具连接ubuntu 登录 解决连接不上的问题 检查 SSH 服务:确保目标机器上 SSH 服务已启动。你可以在目标机器上运行以下命令: sudo systemctl status ssh 如果没有运行,可以使用以下命令启动 SSH …

英特尔AI加速器Gaudi 3下周发布,挑战NVIDIA统治地位!

英特尔正稳步推进其2024年计划,备受瞩目的AI加速器Gaudi3预计将于下周震撼登场。这款被誉为英特尔AI英雄的产品,专注于处理大规模训练和推理任务,拥有无与伦比的扩展能力。面对市场对高效能半导体的旺盛需求,英特尔首席执行官帕特…

FX5 CPU模块和以太网模块的以太网通信功能

FX5 CPU模块和以太网模块的以太网通信功能的概要如下所示。 CPU模块的内置以太网端口的通信规格如下所示。 1、与MELSOFT的直接连接 不使用集线器,用1根以太网电缆直接连接以太网搭载模块与工程工具(GX Torks3)。无需设定IP地址,仅连接目标指定即可进行…

无服务器计算构建人工智能管理区块链系统

图片发自简书App 图片发自简书App 本发明属于网络版权管理技术领域,特别涉及一种以交易信息作 为唯一标准发行虚拟币的区块链系统。 背景技术 数字代币如比特币、以太坊等是区块链技术的实现方式之一,目 标是取代法定货币流通,通过“挖矿”的…

前端-js例子:收钱转账

支付宝转账 在这里用到周期定时器setInterval(function,time),设置达到目标钱数时停止定时器。 点击转账按钮时,开始函数显示。 同时要确定输入框里输入的是数字。(有一定容错) window.onloadfunction(){var btn document.que…

什么是慢充优惠话费充值api?如何选择平台

一、话费充值api的定义 话费充值api是一种能够让开发者将话费充值功能集成到自己的平台的接口。通过接入话费充值api接口,就能够实现话费充值平台的搭建,从而为用户提供话费充值服务,这一接口主要适用于对话费充值有长期稳定需求的企业或者商…

K8s容器运行时,移除Dockershim后存在哪些疑惑?

K8s容器运行时,移除Dockershim后存在哪些疑惑? 大家好,我是秋意零。 K8s版本截止目前(24/09)已经发布到了1.31.x版本。早在K8s版本从1.24.x起(22/05),默认的容器运行时就不再是Doc…

排序-----归并排序(递归版)

核心思想:假设数组前后两部分各自有序,然后各定义两个指针,谁小谁放到新开辟的数组里面,最后把新开辟的数组赋值给原数组就完成了。要使前后两部分有序就采用递归的方式,不断往下划分块,最后一层划分为两个…

01 基础request

目录 类 WxRequest 的定义 静态属性 default 构造函数 constructor 方法 request HTTP 方法封装 创建 WxRequest 实例并导出 完整代码: 类 WxRequest 的定义 创建一个 WxRequest 类包含一个静态属性 default 和几个方法,用于处理网络请求。 静态…

【后端开发】JavaEE初阶—Theard类及常见方法—线程的操作(超详解)

前言: 🌟🌟本期讲解多线程的知识哟~~~,希望能帮到屏幕前的你。 🌈上期博客在这里:【后端开发】JavaEE初阶—线程的理解和编程实现-CSDN博客 🌈感兴趣的小伙伴看一看小编主页:GGBondl…

计算机毕业设计之:基于深度学习的路面检测系统(源码+部署文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

鸿蒙OpenHarmony【轻量系统内核扩展组件(CPU占用率)】子系统开发

基本概念 CPU(中央处理器,Central Processing Unit)占用率分为系统CPU占用率和任务CPU占用率。 系统CPU占用率:是指周期时间内系统的CPU占用率,用于表示系统一段时间内的闲忙程度,也表示CPU的负载情况。系…

INIT与init_array

INIT与init array 1.so执行JNI_OnLoad之前,还会执行俩个构造函数init 和init array 在so加载时候有这个过程: .init -> .init array -> JNI_Onload -> java_com_xxx 在脱壳的过程中会在一些系统级的.so中下断点比如:fopen&#x…

GUI编程19:贪吃蛇小游戏及GUI总结

视频链接:21、贪吃蛇之界面绘制_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p21&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.游戏中用的的图片素材 1.贪吃蛇游戏的主启动类StartGame; package com.yundait.snake;import j…