E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
linux网络编程
Linux网络编程
--struct hostent结构体
使用这个东西,首先要包含2个头文件:#include#includestructhostent*gethostbyname(constchar*name);这个函数的传入值是域名或者主机名,例如"www.google.com.tw","wpc"等等。传出值,是一个hostent的结构(如下)。如果函数调用失败,将返回NULL。structhostent{char*h_name;char**h_al
iteye_12675
·
2020-08-18 20:39
操作系统
Linux网络编程
基础API--TCP的数据读写API
《Linux高性能服务器编程》阅读笔记:1.TCP通信的读写(收发)接口 因为”Linux系统上”一切皆是文件”,那么自然读写文件用的APIread()/write()同样适用于socket。不过Linux还提供了几个专门用于socket数据读写的系统调用。#include#includessize_trecv(intsockfd,void*buf,size_tlen,intflags);ssi
mybright_
·
2020-08-18 19:24
Linux系统/网络编程
Linux编程
Linux网络编程
基础API--socket文件描述符API
《Linux高性能服务器编程》阅读笔记:1.创建socket Linux系统上”一切皆是文件“,socket也不例外,它是可读/可写/可控制/可关闭的文件描述符。要实现socket通信,双方都需要建立各自的socket对象。#include/*SeeNOTES*/#includeintsocket(intdomain,inttype,intprotocol); (1)domain参数告诉系统使
mybright_
·
2020-08-18 19:52
Linux系统/网络编程
Linux编程
linux网络编程
之inet_addr和inet_ntoa使用总结
1、介绍inet_addr函数inet_addr函数转换网络主机地址(如192.168.1.10)为网络字节序二进制值,如果参数char*cp无效,函数返回-1(INADDR_NONE),这个函数在处理地址为255.255.255.255时也返回-1,255.255.255.255是一个有效的地址,不过inet_addr无法处理in_addr_tinet_addr(constchar*cp)2、介
chen.yu
·
2020-08-17 15:39
Linux
网络编程
Linux网络编程
---I/O复用模型之epoll
Linux网络编程
—I/O复用模型之epoll1.epoll模型简介epoll是Linux多路服用IO接口select/poll的加强版,e对应的英文单词就是enhancement,中文翻译为增强,加强
men_wen
·
2020-08-16 19:54
Linux
环境编程
面试相关资料整理 --- 1. 最近看的面试资料
上)—From:大牛陈皓排序相关算法总结2.1数据结构与算法系列目录2.2九种排序算法分析与实现2.3数据结构常见的八大排序算法(详细整理)—有各个算法时间/空间复杂度是对比图并发编程(IO多路复用)
Linux
胡云层呀
·
2020-08-16 17:52
2020秋招面试
Nginx 源码分析:学习网络编程
本场Chat您将学习到以下内容:
Linux网络编程
相关的知
蔚1
·
2020-08-16 15:07
linux网络编程
/tcp_server中server bind失败原因的调研
问题模型:server1为服务端,在本地的9999端口监听,server2相对server1是客户端,server2启动后首先向server1发起连接,然后再8888端口监听。程序代码不在列出。先后启动server1、server2,然后查看当前连接,如图1所示。图1.建立连接,正常之后强制结束server1(ctrl+c),再次查看当前连接状态,如图2所示。图2.server1主动关闭后的状态我
gilr
·
2020-08-16 08:49
linux
网络编程
server
linux
socket函数htons()
概述编辑在Windows和
Linux网络编程
时需要用到的,用来将主机字节顺序转化为网络字节顺序,以Windows下的代码为例:#includeu_shorthtons(u_shorthostshort)
越来越认真
·
2020-08-16 06:07
linux
【
LINUX网络编程
】Socket网络编程实战
网络套接字函数最简单的socket的程序sever#include#include#include#include#include#include#include#include#defineMAXLINE80#definePORT6666intmain(void){structsockaddr_inservaddr,cliaddr;socklen_tcliaddr_len;intlistenfd
与光同程
·
2020-08-16 04:30
LINUX网络编程
Linux网络编程
--非阻塞编程
非阻塞方式程序设计介绍非阻塞方式的操作与阻塞方式的操作最大的不同点是函数的调用立刻返回,不管数据是否成功读取或者成功写入。使用fcntl()将套接字文件描述符按照如下的代码进行设置后,可以进行非阻塞的编程:fcntl(s,F_SETFL,O_NONBLOCK);其中的s是套接字文件描述符,使用F_SETFL命令将套接字s设置为非阻塞方式后,再进行读写操作就可以马上返回了。非阻塞程序设计的例子函数a
奔跑吧,行者
·
2020-08-16 01:03
Linux网络编程
《9.
linux网络编程
实践》
转自https://edu.csdn.net/lecturer/505朱老师物联网大讲堂《9.
linux网络编程
实践》第一部分、章节目录3.9.1.
linux网络编程
框架3.9.2.TCP协议的学习13.9.3
Gti-杠猪
·
2020-08-16 00:14
Linux编程
Linux网络编程
——I/O复用之select详解
一、I/O复用概述I/O复用概念:解决进程或线程阻塞到某个I/O系统调用而出现的技术,使进程不阻塞于某个特定的I/O系统调I/O复用使用的场合:1.当客户处理多个描述符(通常是交互式输入、网络套接字)时,必须使用I/O复用。2.tcp服务器既要处理监听套接字,又要处理已连接套接字,一般要使用I/O复用。3.如果一个服务器既要处理tcp又要处理udp,一般要使用I/O复用。4.如果一个服务器要处理多
lianghe_work
·
2020-08-15 23:15
Linux_高级网络编程
《
Linux网络编程
》综合案例web服务器shttpd
由于之前没认真学习过http协议及服务端的相关实现,近日有空看到同事有本《
Linux网络编程
(第2版)》,遂拾来翻阅,见其中包含一个web服务器的综合案例,于是想认真对照着学习下http的相关开发实现。
kapuchang
·
2020-08-15 23:36
http
Linux网络编程
-基础与实例
(1)socket套接字是一个编程接口是一种特殊的文件描述符(起源于Unix,“everythinginUnixisafile”,都可以用“打开open–>读写write/read–>关闭close”模式来操作)是应用层与TCP/IP协议族通信的中间软件抽象层在设计模式中,Socket其实就是一个门面模式(系统对外界提供单一的接口,外部不需要了解内部的实现)并不仅限于TCP/IP协议面向连接(Tr
shuaixio
·
2020-08-15 22:02
网络编程
Linux网络编程
实现非阻塞I/O的三种方法
套接字的默认行为为:“一直到阻塞到请求动作完成为止”。比如recv函数或者accept函数在收到数据之前会默认一直处于阻塞,含有阻塞函数的进程会在阻塞期间被操作系统挂起。有三种方法实现非阻塞套接字、异步I/O和超时。非阻塞套接字实现非阻塞套接字的方法就是更改套接字的行为,使得所有的调用都是非阻塞的。用fcntl函数就能更改套接字行为intfcntl(intsocket,intcommand,...
SprintfWater
·
2020-08-15 22:20
linux网络编程
16.
Linux网络编程
一、TCP/IP理论基础(1)协议栈Linux的优点之一就是在于它丰富而稳定的网络协议栈,其范围是从协议无关层(如通用的socket层接口和设备层)到各种网络协议的实现(2)协议介绍对于网络理论介绍一般采用OSI模型,但是Linux中网络栈的介绍一般分为四层的Internet模型(3)网络模型(4)TCP/IP协议TCP/IP实际上一个协同工作的通信家族,为网络数据通信提供通路。为讨论方便可TCP
Ayiln
·
2020-08-15 21:00
【
Linux网络编程
】高并发服务器编程 -- Reactor模式与Proactor模式
【
Linux网络编程
】高并发服务器编程--Reactor模式与Proactor模式【0】传统阻塞I/O服务模型特点1.采用阻塞式I/O模型获取输入数据;2.每个连接都需要独立的线程完成数据输入,业务处理
奋斗企鹅copper
·
2020-08-15 21:10
网络编程
linux网络编程
惊群现象模拟
对于linux服务器的惊群现象早有耳闻,只是不知道他的具体场景,如今在学
linux网络编程
多进程模型下,正好遇到这个问题。
Shonm
·
2020-08-14 22:20
linux网络编程
网络编程
mudu库学习篇-mutex类封装学习
muduo库是高并发的
linux网络编程
库,那么就一定有mutex对mutex类的封装,在多线程的编程中,线程间经常会操作一些全局变量,因此我们就需要一些同步的机制,我的上一篇博客condtion算是一种
Coldestmonth
·
2020-08-14 17:44
C++知识点
muduo库
Linux网络编程
经典书籍推荐
首先要说讲述TCP/IP的书很多,其中有3泰书很全。分别是《TCP/IP详解》三卷本,《用TCP/IP进行网际互连》三卷本,《TCP/IP指南》+《IPv6》四卷本其中TCP/IP详解的作者还写了另外2本经典著作,《Unix环境高级编程》,《Unix网络编程》作者W.RichardStevens个人网站http://www.kohala.com/大师作品部部经典,可惜1999年去另一个世界维护Un
我是榜样
·
2020-08-14 14:25
linux
linux
编程
网络
unix
linux内核
linux网络编程
,进程间的通信之互斥锁与条件变量
互斥锁mutex1#include2#include3#include4/*互斥锁函数5*pthread_mutex_t*6*pthread_mutex_init()*7*pthread_mutex_destory()*8*pthread_mutex_lock()*//阻塞,直到解锁为止才停止阻塞9*pthread_mutex_unlock()*//解锁10*pthread_mutex_try_l
csdn_wanziooo
·
2020-08-14 13:43
Linux网络编程
基础_3_数据链路层(下)
数据链路层(下)五、介质访问控制1、信道划分介质访问控制频分多路复用FDM、时分多路复用TDM、波分多路复用WDM、码分多路复用CDM。多路复用技术就是把许多个单个信号在一个信道上同时传输的技术。频分多路复用FDM和时分多路复用TDM是两种最常用的多路复用技术。但是,时分复用可能会造成线路资源的浪费。2、随机访问介质访问控制1)ALOHA协议【现在很少使用】纯ALOHA基本思想:是用户有帧即可发送
weixin_34217773
·
2020-08-14 05:24
Linux网络编程
基础_3_数据链路层(上)
数据链路层(上)一、数据链路层的功能链路层的主要功能包括链路管理、帧同步、流量控制、差错控制、数据和控制信息分开、透明传输和寻址。数据链路层传输的是数据帧。MTU:数据链路层的数据帧长;SOH:帧开始字符;EOT:帧结尾字符;二、如何解决传输过程中的“透明传输”?1、零比特填充基本原理:将需要传输的数据块看作比特序列,在数据块前和后各加入一个特殊的比特序列(前文位模式和后文位模式,01111110
George_Fal
·
2020-08-14 05:12
Linux网络编程
--字节序
1.谈到字节序,那么会有朋友问什么是字节序很简单:【例如一个16位的整数,由2个字节组成,8位为一字节,有的系统会将高字节放在内存低的地址上,有的则将低字节放在内存高的地址上,所以存在字节序的问题。】2.那么什么是高字节、低字节?也相当简单:【一个16进制整数有两个字节组成,例如:0xA9。高字节就是指16进制数的前8位(权重高的8位),如上例中的A。低字节就是指16进制数的后8位(权重低的8位)
奔跑吧,行者
·
2020-08-14 05:36
Linux网络编程
udp传输大文件的一个例子
FileName:server.c>Author:ljh************************************************************************//*
Linux
蜗牛哦
·
2020-08-14 05:17
linux应用
Linux网络编程
(高并发服务器)
文章目录三次握手与四次挥手TCP状态转换滑动窗口mss和MTU网络编程函数封装粘包高并发服务器思路分析多进程服务器代码实现多线程版本的服务器开发流程思路分析多线程版本的服务器开发代码实现三次握手与四次挥手三次握手:建立连接需要三次握手过程四次挥手:断开连接需要四次挥手过程.TCP状态转换滑动窗口主要作用:滑动窗口主要是进行流量控制的.如果发送端发送的速度较快,接收端接收到数据后处理的速度较慢,而接
Mr.魏(魏先生)
·
2020-08-13 22:04
Linux
Linux网络编程
(网络编程基础)
文章目录协议OSI7层模型TCP四层模型数据通信过程网络应用程序常见的两种设计模式字节序问题服务端开发流程客户端的开发流程协议协议是双方共同指定的一组规则,在网络通信中表示通信双方传递数据和解释数据的一组规则.IP协议:在网络层TCP协议:面向连接的,安全的,可靠的数据流传输协议.UDP协议:面向无连接的,不安全的,不可靠的数据报传输.OSI7层模型物数网传会表应应用层:主要就是应用程序,ftps
Mr.魏(魏先生)
·
2020-08-13 22:03
Linux
Linux 网络编程 全解(七)--------epoll的ET和LT触发模式以及epoll反应堆
Linux网络编程
全解(一)--------网络基础协议
Linux网络编程
全解(二)--------套接字socket
Linux网络编程
全解(三)--------TCP三次握手、数据传输、四次挥手、滑动窗口
KiranWang
·
2020-08-13 21:17
Linux网络编程
Linux网络编程
--epoll模型之LT触发模式和ET触发模式
epoll对文件描述符有两种操作模式--LT(leveltrigger电平模式)和ET(edgetrigger边缘模式)简单来讲,LT是epoll的默认操作模式,当epoll_wait函数检测到有事件发生并将通知应用程序,而应用程序不一定必须立即进行处理,这样epoll_wait函数再次检测到此事件的时候还会通知应用程序,直到事件被处理。而ET模式,只要epoll_wait函数检测到事件发生,通知
奔跑吧,行者
·
2020-08-13 19:48
Linux网络编程
(三)—— TCP三次握手、四次挥手详解(图)
三次握手建立连接TCP发送数据之前要先建立连接(三次握手)所谓三次握手(Three-wayHandshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换TCP窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。两台主机,服务器(server)和客户机(clie
Thanos Yan
·
2020-08-13 18:36
网络通信
linux网络编程
Linux网络编程
之多进程模型编程与一个使用进程池实现的CGI服务器
NO.1一:什么是多进程模型多进程模型是服务器在接收到大量高并发客户端访问时,通过创建多个子进程来与客户端进行通信。单进程阻塞在read()系统调用的时候,会导致服务器无法响应到其他的连接请求。这时可以通过fork()函数创建出多个子进程来处理业务,而主进程继续循环accept()其他客户连接,子进程实施具体的通信细节。二:fork函数详解NAMEfork-createachildprocessS
FreeeLinux
·
2020-08-13 11:19
网络
服务器
并发
fork函数
子进程创建
linux网络编程
alin的学习之路(
Linux网络编程
:五)(epoll ET\LT模式、epoll反应堆模型)
alin的学习之路(
Linux网络编程
:五)(epollET\LT模式、epoll反应堆模型)1.epollET/LT模式ET:边沿触发LT(默认):水平触发(持续触发)1.ET模式边沿触发。
alin_server
·
2020-08-13 10:12
epoll
epoll反应堆
epoll
socket
linux
alin的学习之路(
Linux网络编程
:七)(UDP广播、UDP组播、本地套接字)
alin的学习之路(
Linux网络编程
:七)(UDP广播、UDP组播、本地套接字)1.UDP广播通过UDP广播可以将数据发送给同一网段下的所有指定端口号的进程。
alin_server
·
2020-08-13 10:12
本地套接字
广播
组播
alin的学习之路(
Linux网络编程
:六)(线程池、UDP的C/S模型)
alin的学习之路(
Linux网络编程
:六)(线程池、UDP的C\S模型)1.线程池解析1.原理图2.结构体typedefstruct{void*(*function)(void*);/*函数指针,回调函数
alin_server
·
2020-08-13 10:12
线程池
linux
udp
alin的学习之路(
Linux网络编程
:四)(多路IO转接:select、poll、epoll)
alin的学习之路(
Linux网络编程
:四)(多路IO转接:select、poll、epoll)1.select1.select优化思路当select转接的文件描述符跨度过大时,每次都遍历文件描述符表显然会降低效率
alin_server
·
2020-08-13 10:11
Linux
epoll
select
epoll
linux
alin的学习之路(
Linux网络编程
:一)(网络模型、帧格式、socket套接字、服务器端实现)
alin的学习之路(
Linux网络编程
:一)(网络模型、帧格式、socket套接字、服务器端实现)1.协议协议是一组规则,规定了如何发送数据。
alin_server
·
2020-08-13 10:11
Linux
socket
alin的学习之路(
Linux网络编程
:三)(高并发服务器-多线程、TCP通信时序状态、多路IO转接select概述)
alin的学习之路(
Linux网络编程
:三)(高并发服务器-多线程、TCP通信时序状态、多路IO转接select概述)0.一些小的注意事项1.SIGCHLDSIGCHLD只要子进程状态发生变化就会产生,
alin_server
·
2020-08-13 10:11
Linux
socket
多路IO转接select
alin的学习之路(
Linux网络编程
:二)(三次握手四次挥手、read函数返回值、错误函数封装、多进程高并发服务器)
alin的学习之路(
Linux网络编程
:二)(三次握手四次挥手、read函数返回值、错误函数封装、多进程高并发服务器)1.服务器获取客户端地址和端口号accept函数会返回客户端的sockaddr,通过使用
alin_server
·
2020-08-13 10:11
Linux
socket
alin的学习之路(
Linux网络编程
:九)(HTML,http协议)
alin的学习之路(
Linux网络编程
:九)(HTML,http协议)1.HTML简述1.基本html网页结构网页标题678网页身体1网页身体2网页身体32.常用标签标题共1~6级。数越小,字越大。
alin_server
·
2020-08-13 09:34
Linux
alin的学习之路(
Linux网络编程
:十)(http协议,BS模型)
alin的学习之路(
Linux网络编程
:十)(http协议,BS模型)需求:使用B/S模型来访问主机中的文件(包括目录)0.B/S模型注意事项1.浏览器请求ico准备一个favicon.ico文件放置到服务器提供访问的资源目录中
alin_server
·
2020-08-13 09:34
B/S模型
epoll
linux
http
alin的学习之路(
Linux网络编程
:八)(libevent库)
alin的学习之路(
Linux网络编程
:八)(libevent库)1.libevent库1.优点开源精简跨平台专注于网络通信——可以借助fd来进行pipe、fifo等通信2.下载安装下载地址:https
alin_server
·
2020-08-13 09:34
libevent
linux
【
Linux网络编程
】06 大小端(识别大小端)地址转换函数
文章目录1大小端2字节网络传输过程3识别大小端:4(大小端)地址转换函数1大小端大端低位存高地址,高位存低地址小端低位存低地址,高位存搞地址2字节网络传输过程不同电脑存数据的大小端不一样:因此我们需要在网络上传输规定都是一个大端或者小端比如都规定大端:3识别大小端:typedefunionDD{//共同体是里面各变量共同拥有一个地址空间unsignedshorta;unsignedcharb[2]
努力做一个code杠精
·
2020-08-12 01:46
Linux网络编程
linux网络编程
常用函数详解与实例(socket-->bind-->listen-->accept)
常用的网络命令:netstat命令netstat是用来显示网络的连接,路由表和接口统计等网络的信息.netstat有许多的选项我们常用的选项是-an用来显示详细的网络状态.至于其它的选项我们可以使用帮助telnettelnet是一个用来远程控制的程序,但是我们完全可以用这个程序来调试我们的服务端程序的.比如我们的服务器程序在监听8888端口,我们可以用telnetlocalhost8888来查看服
阳光岛主
·
2020-08-11 04:41
Linux/Shell
C/C++/C#
NetWork
2.
Linux网络编程
-socket函数和C2S实现
1.TCP客户/服务器模型TCP服务器:socket()–>bind()–>listen()–>accept()–>block直至客户连接到达---->read()–>处理请求–>write()---->read()–>close()TCP客户端:socket()—>connect()---->write()----->read()---->close()2.回射客户/服务器返回客户发送的信息;3
知无涯99
·
2020-08-11 03:58
Linux网络编程
Linux网络编程
(8)libeven框架
libevent简介:Libevent是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动(event-driven),高性能;轻量级,专注于网络,不如ACE那么臃肿庞大;源代码相当精炼、易读;跨平台,支持Windows、Linux、*BSD和MacOs;支持多种I/O多路复用技术,epoll、poll、dev/poll、select和kqueue等;支持I/O,定时器
删库跑路打断腿
·
2020-08-10 20:47
学习笔记
Linux网络编程
(7)本地套接字通信
**TCP本地套接字通信:**为了实现没有血缘关系的进程之间通信,通常会采用本地套接字进行通信,在两个进程分别绑定好了套接字文件(.sock),运行程序后将产生两个套接字文件,这两个文件共享同一片内核缓冲区,内核将完成两个进程之间的数据传输在不同通信中采用不同的结构体实现流程(TCP实现)服务器1.创建套接字intlfd=socket(AF_LOCAL,SOCK_STREAM,0);2.绑定str
删库跑路打断腿
·
2020-08-10 20:47
学习笔记
基础知识
Linux网络编程
(4)TCP状态转换-select-poll
使用select实现IO多路转接相关知识TCP的状态转换TCP的状态转换:在进行通信的时候进程所处的状态会随着通信的状态发生改变在一个正常通信的模型中,服务器和客户端的状态变化如下L客户端:CLOSED->(第一次握手后)SYN_SENT->(第二次握手)ESTABLISTHED->(第一次挥手)FIN_WAIT_2->(第二次挥手)FIN_WAIT_2->(第三四次挥手)TIME_WAIT->(
删库跑路打断腿
·
2020-08-10 20:15
学习笔记
基础知识
Linux网络编程
(6)UDP通信,广播和组播
Udp介绍UDP—⽤户数据报协议,是⼀个⽆连接的简单的⾯向数据报的运输层协议。UDP不提供可靠性,它只是把应⽤程序传给IP层的数据报发送出去,但是并不能保证它们能到达⽬的地。由于UDP在传输数据报前不⽤在客户和服务器之间建⽴⼀个连接,且没有超时重发等机制,故⽽传输速度很快。UDP是⼀种⾯向⽆连接的协议,每个数据报都是⼀个独⽴的信息,包括完整的源地址或⽬的地址,它在⽹络上以任何可能的路径传往⽬的地,
删库跑路打断腿
·
2020-08-10 20:15
学习笔记
基础知识
Linux网络编程
(5)epoll实现IO多路转接
epoll相关函数介绍epoll大致实现思路假设现在存有一个文件描述符表,该表中存有对应的用于监听连接请求的文件描述符lfd,则创建一个树状结构,该树状结构根节点对应着文件描述符表的3号位置(0.1.2位置为系统占用位),左节点为第4号位置,依次类推,直到所有节点填充完毕,在统一对该树状结构进行管理。1.该树结构为红黑二叉树2.挂载在树上的结构类型为结构体类型structepoll_event关于
删库跑路打断腿
·
2020-08-10 20:15
学习笔记
基础知识
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他