linux网络编程6

devtools/2024/9/23 6:50:05/

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.ppmy.cn/devtools/115867.html

相关文章

招联金融秋招-2025

【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策划 产品运营…

鸿蒙OpenHarmony【轻量系统内核扩展组件(动态加载)】子系统开发

基本概念 在硬件资源有限的小设备中,需要通过算法的动态部署能力来解决无法同时部署多种算法的问题。以开发者易用为主要考虑因素,同时考虑到多平台的通用性,LiteOS-M选择业界标准的ELF加载方案,方便拓展算法生态。LiteOS-M提供类…

SparkSQL和Spark常用语句

Spark SQL 常用语句 读取数据 scala val df spark.read.option(“header”, “true”).csv(“path/to/csvfile.csv”) val df spark.read.parquet(“path/to/parquetfile.parquet”) val df spark.read.json(“path/to/jsonfile.json”) 展示数据 scala df.show() df.show(…

【计算机网络 - 基础问题】每日 3 题(十一)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…

十一、SOA(SOA的具体设计模式)

我们现在深入学习SOA的具体设计模式。SOA架构中的设计模式主要是指导服务如何设计、实现、部署和管理,确保服务的松耦合、高可用性、扩展性和复用性。SOA常见的设计模式可以分为以下几类: 1. 服务层次设计模式 1.1. 基础服务(Fundamental S…

sql语法学习

SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准化语言。它允许用户通过一系列的语句来定义、查询、更新和管理数据库中的数据。掌握SQL语法对于数据库开发、数据分析和数据管理等职业至关重要。以下是对SQL语法学习的详细探讨&a…

类和对象(2)(重点)

个人主页:Jason_from_China-CSDN博客 所属栏目:C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目:C知识点的补充_Jason_from_China的博客-CSDN博客 类的默认成员函数 概念概述 默认成员函数就是用户没有显式实现,编译器会自…

手机在网状态查询接口如何用Java进行调用?

一、什么是手机在网状态查询接口? 手机在网状态查询接口,又叫运营商在网状态查询,手机号在网状态查询,传入手机号码,查询该手机号的在网状态,返回内容有正常使用、停机、在网但不可用、不在网(…