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网络编程
:epoll+reactor实现文件下载服务器
想来学习linux下的网络编程已经有一段时间了,于是写了这样一个文件下载服务器来复习总结一下。回想起来这段学习历程,从最开始的回声服务器,到后来的多路I/O复用,再到后来的多进程、多线程、线程池服务器,这一路走来感觉编程的世界真是其乐无穷。好了,废话到此为止。××××××××××××××××××××××我是分割线×××××××××××××××××××××××××××××××××××××××项目版本
玛法里奥奥奥
·
2020-08-10 18:04
linux
linux网络编程
基础-网络基础
网络应用程序设计模型C/S模式客户机(client)/服务器(server)模式。需要在通讯两端各自部署客户机和服务器来完成数据通信。B/S模式浏览器(browser)/服务器(server)模式。只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输。优缺点 C/S模式优点缺点数据缓存本地,效率高工作量大,开发周期更长可以采用自定义协议
zzyczzyc
·
2020-08-10 05:14
linux网络编程
【二十五】
Linux网络编程
——模仿Ping命令的实现
【二十五】
Linux网络编程
——模仿Ping命令的实现/*Myping.c*/#include#include#include#include#include#include#include#include
菠萝的春天
·
2020-08-10 05:17
C/C++
Farsight
linux网络编程
--网络基础(协议,分层模型结构,协议格式 CS/BS优缺点)
1协议1.1概念协议:就是一组规则,是数据传输和数据的解释规则1.2典型协议1.2.1传输层常见协议有TCP/UDP协议特点数据传输方式类比面向连接数据流大巴车(人满发车,定点发车),打电话(确保信息准确送达)无连接数据报出租车(随到随走),发短信(不是关心对方马上收到)1.2.2应用层常见协议有HTTP,FTP协议中文名称英文简写英文全称端口号文件传输协议FTPFileTransferProto
。。
·
2020-08-10 04:03
网络编程
网络协议
Linux网络编程
基础1(网络应用程序设计模式,分层模型,协议格式)
Linux网络编程
基础(网络应用程序设计模式,socket编程,inet_pton,inet_ntop,服务端创建连接的过程,客户端创建连接的过程,socket函数封装)1.网络应用程序设计模式2.分层模型
Kuany_
·
2020-08-10 04:42
C++网络编程
计算机网络
Linux网络编程
----基础知识总结
"Linux"我感觉仅从字面上讲就感觉不是很简单,千里之行,始于足下,接下来要开始有关
Linux网络编程
的学习了。
原来是小柒
·
2020-08-10 00:36
Linux网络编程
Linux网络编程
总结-多进程,多线程,select,poll,epoll,libevent
Linux网络编程
总结摘要1.网络基础1.1网络设计模式B/S和C/S1.2IP和端口1.3网络分层模型1.4socket编程1.4.1socket1.4.2关于socket的函数1.4.3监听套接字和连接套接字
qq_41286360
·
2020-08-10 00:50
网络编程
Linux网络编程
之TCP协议(一版)
ser.c:#include#include#include#include#include#includeintmain(){intsockSer=socket(AF_INET,SOCK_STREAM,0);//创建套接字if(sockSer==-1)//出错处理{perror("socket.");exit(1);}structsockaddr_inaddrSer,addrCli;//服务端和
C++有点难
·
2020-08-09 23:35
Linux
Linux网络编程
必看书籍推荐
首先要说讲述TCP/IP的书很多,其中有3泰书很全。分别是《TCP/IP详解》三卷本,《用TCP/IP进行网际互连》三卷本,《TCP/IP指南》+《IPv6》四卷本其中TCP/IP详解的作者还写了另外2本经典著作,《Unix环境高级编程》,《Unix网络编程》作者W.RichardStevens个人网站http://www.kohala.com/大师作品部部经典,可惜1999年去另一个世界维护Un
iteye_14001
·
2020-08-09 21:00
Linux网络编程
之原始套接字-ping协议实现
1.概述PING协议是用来检验本地主机与远程主机是否连接,发送的是ICMPECHO_REQUEST包。普通的套接字是基于TCP或者是UDP的,无法发送ICMP包,所以必须用原始套接字来实现。PING协议的客户端类型值为8,代码值为0,表示请求。而PING协议的响应端类型值为0,代码值也为0,表示应答.以太网数据部分的最小值为46字节,而IP首部占20个字节,ICMP的首部占8个字节,所以PING的
chenjin_zhong
·
2020-08-09 20:57
Linux
网络编程
一步步学
Linux网络编程
--ping命令的实现分析
先来说说ping程序的原理吧,其实挺简单,就是一个主机系统向另外一个主机系统说:Iloveyou(ICMP报文),然后那个主机如果相信你或者说想和你通信,和你心知心,那它就把收到的Iloveyou(ICMP)报文原样返回.好嘛,源主机收到这个回应后,就happy了,因为对方是和自己心连心的。如果对方没有收到这个消息,或者对你不感冒,不愿意理你,不回你这个报文,或者说些不知云是云雾是雾的话,对不起啦
jemofh159
·
2020-08-09 17:10
Linux网络编程
--7. TCP/IP协议
你也许听说过TCP/IP协议,那么你知道到底什么是TCP,什么是IP吗?在这一章里面,我们一起来学习这个目前网络上用最广泛的协议.7.1网络传输分层如果你考过计算机等级考试,那么你就应该已经知道了网络传输分层这个概念.在网络上,人们为了传输数据时的方便,把网络的传输分为7个层次.分别是:应用层,表示层,会话层,传输层,网络层,数据链路层和物理层.分好了层以后,传输数据时,上一层如果要数据的话,就可
天天向上_好好学习
·
2020-08-09 17:03
网络
linux
c
Linux网络编程
[网络中的广播]
Linux网络编程
[网络中的广播]什么是广播网络中广播地址如何去进行广播发送和接收广播实例Demo什么是广播?
^_^ 小小码nong
·
2020-08-09 10:28
LinuxC学习
C语言之美
【
Linux网络编程
】socket编程“网络字节顺序”和“主机字节顺序”
1.大小端模式 在socket编程前,有必要知道大小端模式。大小端模式是指计算机内存中数据存放的模式,由CPU决定,与操作系统无关。大端模式(Big-endian,是指数据的高字节保存在内存的低地址中,数据的低字节保存在内存的高地址中,这种存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;与我们的阅读习惯一致。小端模式(Little-endian),是指数据的
Acuity.
·
2020-08-09 10:31
C
C++
linux网络编程
Linux之广播和多播
最近学习
Linux网络编程
学到了广播与多播,就在这做点笔记。其中一些原理我就不介绍了,我觉得学习
Linux网络编程
,TCP/IP三卷还是基础,是需要好好看看。
kejie1235
·
2020-08-09 09:49
Linux
LInux_网络编程_1.网络协议
LINUX网络编程
1.网络协议1.1.TCP/IP协议概述osi参考模型7层和tcp/ip模型4层:1.2.OSI参考模型及TCP/IP参考模型TCP/IP协议族的每一层的作用数据链路层具体网络层具体数据封装和解封装过程
Yol_2626
·
2020-08-09 03:23
LInux
网络编程
Linux网络编程
- TCP Socket 简单练习:select同时监测多个描述符
运行方式服务器端,可以直接运行命令,也可以带参数运行,如果不带参数运行,则程序自主获取主机ip,然后默认设定port和lisnum的值。其中port默认为6666,lisnum默认为5.[cpp]viewplaincopyprint?./socket_select_serverIP地址(可选)端口号(可选)监听队列大小(可选)客户端,必须指定服务器的IP地址和端口号,例如:[cpp]viewpla
ygl840455828ygl
·
2020-08-09 03:53
linux编程之网络编程
Linux网络编程
- 网络调试工具
tcpdump的使用参考链接:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/05/1771563.html我们用尽量简单的话来定义tcpdump,就是:dumpthetrafficeonanetwork.,根据使用者的定义对网络上的数据包进行截获的包分析工具。作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策
ygl840455828ygl
·
2020-08-09 03:53
linux编程之网络编程
Linux 网络编程 全解(六)--------多路IO转接服务器
Linux网络编程
全解(一)--------网络基础协议
Linux网络编程
全解(二)--------套接字socket
Linux网络编程
全解(三)--------TCP三次握手、数据传输、四次挥手、滑动窗口
KiranWang
·
2020-08-09 01:32
Linux网络编程
linux网络编程
-一个简单的线程池(41)
有时我们会需要大量线程来处理一些相互独立的任务,为了避免频繁的申请释放线程所带来的开销,我们可以使用线程池1、线程池拥有若干个线程,是线程的集合,线程池中的线程数目有严格的要求,用于执行大量的相对短暂的任务,线程池中线程的数目一般小于并发的任务量,如果此时存在大量的并发的任务需要执行,由于线程池中的线程数目小于并发的任务量,因此,任务需要在队列中去等待,等待线程池中的某个线程执行完成后,该线程在从
weixin_33695450
·
2020-08-09 00:28
数据结构与算法
linux网络编程
-服务器端线程池技术(C语言实现)
开发环境:CentOS6.4语言:C编译器:gcc在服务器程序中,经常会采用为每个客户创建一个线程去处理客户请求;问题:假设处理客户请求的时间不长,当大量客户陆续接入的时候,那么服务器对每个客户都将做这样的处理:创建线程->处理客户请求->销毁线程;由于每个客户请求的处理时间都不长,而创建线程和销毁线程需要花费较大的系统开销,所以当大量客户接入的时候服务器将花费大量的时间在创建和销毁线程上面,从而
hjj414
·
2020-08-08 22:39
linux网络
多线程
linux学习
Linux网络编程
--使用epoll,共享内存技术实现高性能的聊天室程序
本篇博文主要介绍使用epoll和多进程的共享内存技术实现高性能的聊天室的服务器程序。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#defineUSER_LIMIT5#defineBUFFE
奔跑吧,行者
·
2020-08-08 22:59
Linux网络编程
--使用epoll模型同时处理tcp和udp服务
在实际工作中,服务器需要同时监听和处理tcp和udp的套接字,同时监听N多的端口。根据bind系统调用来讲,一个socket只能监听一个端口,因此要创建多个socket并绑定到各个端口上。当然同一个端口可以同时绑定tcp和udp的socket,但是要创建两个socket,一个是tcp的一个是udp的。下面我们就写一个可以同时处理tcp和udp服务的回射服务器。#include#include#in
奔跑吧,行者
·
2020-08-08 22:59
深入
linux网络编程
(二):异步阻塞IO —— select
作者:
[email protected]
新浪微博@孙雨润新浪博客CSDN博客日期:2012年11月17日1.异步阻塞IO当从一个描述符读,写到另一个描述符时,可以在下列形式的循环中使用阻塞IO:while((n=read(STDIN_FILENO,buf,BUFSIZ))>0)if(write(STDOUT_FILENO,buf,n)!=n)err_sys("writeerror");这种形式的
sunyurun
·
2020-08-08 21:03
Network
linux网络编程
中listen函数 backlog的含义
结论:backlog是用来指定在TCP连接时,同时进行3次握手建立连接的客户端数量listen函数在一般在调用bind之后-调用accept之前调用,它的函数原型是:#includeintlisten(intsockfd,intbacklog)返回:0──成功,-1──失败参数sockfd被listen函数作用的套接字,sockfd之前由socket函数返回。在被socket函数返回的套接字fd之
star871016
·
2020-08-08 21:00
Linux
linux网络编程
之用socket实现简单客户端和服务端的通信(基于TCP)
一、介绍基于TCP协议通过socket实现网络编程常用API1、读者如果不是很熟悉,可以先看我之前写的几篇博客,有socket,地址结构的理解,更加方便读者理解地址分别是:1)、http://blog.csdn.net/u011068702/article/details/564799272)、http://blog.csdn.net/u011068702/article/details/5648
sinat_35297665
·
2020-08-08 21:33
Linux网络编程
Linux网络编程
(四)——点对点聊天程序实现
目录文章目录目录前言函数介绍`setsockopt``fork`函数代码示例点对点聊天程序实现实现要点实现代码总结链接地址前言这篇文章记录了实现一个简易点对点聊天程序的过程,软件开发比较好的地方就是能够看到许多日常事务的本质,但也导致出去玩的时候会没有惊奇感,不过知道更多的未知的才会更有意思吧!函数介绍setsockopt服务器端尽可能使用SO_REUSEADDR。在绑定之前尽可能调用setsoc
simonXi-tech
·
2020-08-08 21:11
网络编程
网络编程
linux网络编程
/多线程多进程服务器与进程线程池
一、多进程服务器1、服务器端代码:#include#include#include#include#include#include#include//./tcp_server127.0.0.18080staticvoidusage(constchar*proc){printf("Usage:%s[local_ip][local_port]\n",proc);}intstartup(constcha
gilr
·
2020-08-08 21:32
linux
Linux网络编程
实验——进程池实现服务器
这是学习
Linux网络编程
以来的第一个相对比较长的实验。途中遇到了许多乱七八糟的问题以致感觉自己迷迷糊糊的,所以打算把这些记下来算作梳理。
Little Prince~
·
2020-08-08 20:06
Linux网络编程
- 异步 I/O 的探讨
概念第一种是阻塞I/O。阻塞I/O发起的read请求,线程会被挂起,一直等到内核数据准备好,并把数据从内核区域拷贝到应用程序的缓冲区中,当拷贝过程完成,read请求调用才返回。接下来,应用程序就可以对缓冲区的数据进行数据解析。第二种是非阻塞I/O。非阻塞的read请求在数据未准备好的情况下立即返回,应用程序可以不断轮询内核,直到数据准备好,内核将数据拷贝到应用程序缓冲,并完成这次read调用。注意
囚牢-峰子
·
2020-08-08 19:02
Linux网络编程
Linux网络编程
- C10K问题:高并发模型的设计初篇
C10K问题这一篇,借着C10K问题,系统地梳理一下高性能网络编程的方法论。C10K问题是这样的:如何在一台物理机上同时服务10000个用户?这里C表示并发,10K等于10000。得益于操作系统、编程语言的发展,在现在的条件下,普通用户使用JavaNetty、Libevent等框架或库就可以轻轻松松写出支持并发超过10000的服务器端程序,甚至于经过优化之后可以达到十万,乃至百万的并发。操作系统层
囚牢-峰子
·
2020-08-08 19:31
Linux网络编程
C10K问题本质
C10K解决方法
C10K阻塞I/O方法
CC10K非阻塞I/O方法
Linux网络编程
--多线程实现echo服务器与客户端“一对多”功能,网络编程的“Hello World!” - 壮壮熊
在linux平台下,用多线程实现echo服务器与客户端“一对多”(即是一台服务器可以响应多个客户端的请求)。本人写了个demo,和大家一起分享,有不足的地方,请多多指教,我是壮壮熊。编译时,在后面加上-lpthread。例如:g++service2.cpp-oservice2-lpthread。否则会提示线程方面的错误。echo服务器端代码:#include#include#include#inc
imxiangzi
·
2020-08-08 16:17
Linux/网络
linux网络编程
入门——基于socket的proxy
学习
Linux网络编程
有一段时间了,作为一个总结,写一个基于socket的proxy,算是复习前面的所学。
clearriver
·
2020-08-08 14:09
socket
编程
网络
linux
服务器
java
Linux网络编程
使用epoll实现一个高性能TCP Echo服务器
#零、前言在
Linux网络编程
中,使用I/O复用来处理大规模并发连接是一种常见的方法,常用的有select、poll、epoll,本文主要讲述epoll的使用方法,并使用epoll实现一个高性能的Echo
chengjuelai7601
·
2020-08-08 14:30
【
Linux网络编程
】基于TCP的线程池(pthread_pool)版本HTTP服务器
(线程池代码参考网上的)服务器代码:#include#include#include#include#include#include#include#include"mypthreadpool.h"#defineSOCK_FAIL1#defineBIND_FAIL2#defineLISTEN_FAIL3#defineUSE_ERROR4#defineACCPET_FAIL5intamount=0;
春风来不来
·
2020-08-08 13:31
linux
poll服务器
想详细彻底地了解poll或看懂下面的代码请参考《
Linux网络编程
——I/O复用之poll函数》代码:[csharp]viewplaincopyincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludedefineOPEN_MAX100intmain
BUG_SPECIAL
·
2020-08-08 12:44
linux
网络编程
服务器
linux
Linux网络编程
- TCP Socket 简单练习:线程池实现并发服务器
服务器函数执行流程maininit_systemcreat_pthread_poolchild_workthread_managertask_managerprocess_clientmonitorsys_cleanMakefile文件[plain]viewplaincopyprint?CC=gccTARGET=pthread_poolSRC=pthread_pool.cbase.cOBJECT=
ygl840455828ygl
·
2020-08-08 12:21
linux编程之网络编程
linux网络编程
之简单的线程池实现
转眼间离15年的春节越来越近了,还有两周的工作时间貌似心已经不在异乡了,期待与家人团聚的日子,当然最后两周也得坚持站好最后一班岗,另外期待的日子往往是心里不能平静的,越是想着过年,反而日子过得越慢,于是乎,还是用学习来充斥这些碎片时间,当人一充实,时间也就过得快了,继续学习:上次中已经用互斥锁与条件变量来改造了生产者与消费者问题,这次利用它来实现一个线程池,加强对条件变量及互斥锁的认识,下面开始:
weixin_30647065
·
2020-08-08 11:40
linux网络编程
之多线程多进程服务器与进程线程池
一.实现tcp服务端多进程编写#include#include#include#include#include#include#includestaticvoidusage(constchar*proc){printf("Usage:%s[local_ip][local_port]\n",proc);}intstartup(constchar*_ip,int_port){intsock=socke
someday1314
·
2020-08-08 11:43
linux
网络编程
线程池进程池
Linux网络编程
——tcp并发服务器(多进程)
http://blog.csdn.net/lianghe_work/article/details/46503895一、tcp并发服务器概述一个好的服务器,一般都是并发服务器(同一时刻可以响应多个客户端的请求)。并发服务器设计技术一般有:多进程服务器、多线程服务器、I/O复用服务器等。二、多进程并发服务器在Linux环境下多进程的应用很多,其中最主要的就是网络/客户服务器。多进程服务器是当客户有请
sinat_35297665
·
2020-08-08 11:41
Linux网络编程
Linux网络编程
实验——线程池实现服务器
本实验是按照《Linux高性能服务器编程》15.5节实现的。原理很简单,就是利用epoll+多线程对客户请求进行处理。代码已经放在了git仓库,下面记录了几个我遇到的问题。1.异常表现:在进行压测时,服务器会触发许多对-1文件描述符的异常关闭。 这个问题我排查了很久,最后发现原来是因为自己不熟悉多线程编程而导致的。 对于每一个客户连接我都使用一个实体类来表示,其中也包括这个连接的文件描述符
Little Prince~
·
2020-08-08 11:03
【
Linux网络编程
】高并发服务器编程 -- 进程池与线程池
【
Linux网络编程
】高并发服务器编程--进程池与线程池【1】动态创建进程/线程实现高并发的缺点耗费时间,响应慢;动态创建的子进程/子线程通常只能为一个客户服务,将导致系统产生大量的细微进程/线程,进程
奋斗企鹅copper
·
2020-08-08 11:42
网络编程
Linux高并发网络编程开发——10-Linux系统编程-第10天(网络编程基础-socket)
10-Linux系统编程-第10天(网络编程基础-socket)一、
Linux网络编程
阶段二、网络基础1、网络开发两种设计模式》协议的概念什么是协议?
AllisWell_WP
·
2020-08-08 11:04
Linux网络编程
之进程、线程池及实现简单线程池
一、池的概念由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。很显然,直接从池中取得所需资源比动态分配资源的
深山夕照
·
2020-08-08 11:01
linux
Linux网络编程
——epoll服务器编写
epoll服务器端代码:#include#include#include#include#include#include#include#includestaticvoidusage(constchar*proc){printf("Usage:%s[local_ip][local_port]\n",proc);}typedefstructfd_buf{intfd;charbuf[10240];}f
BUG_SPECIAL
·
2020-08-08 10:44
linux
Linux网络编程
——线程池架构
线程池概念及用途概念:实质就是一个装着线程的的容器,线程池一种多线程的处理方式,处理过程间任务添加到队列,然后创建线程后自动启动这些任务。比喻:这有点像去街上借的共享充电宝,收集这些充电宝的盒子就是线程池,充电宝就是线程。每个人去拿共享充电宝,就相当于是充电宝接任务。从这个比喻可以知道,共享充电宝收集盒(线程池)里面要先有一些充电宝(已经创建好的线程)才行。为什么要有线程池:节省资源,每次来一个客
励志成为编程大佬
·
2020-08-08 10:01
Linux网络编程
Linux网络编程
——高并发服务器之epoll模型
事前准备(可忽略)在这之前我们需要先看看自己的虚拟机能够连接最大客户端数(可以说是设置最大打开文件描述符限制),并且进行修改。按一下步骤进行输入(不同版本的虚拟机查出来的数目可能会有些差异,但是这些指令都是可以用的)输入ulimit–n来看可连接最大客户端数(如果你是32位的虚拟机可能是1024)输入sudovi/etc/security/limits.conf写入以下配置,soft软限制,har
励志成为编程大佬
·
2020-08-08 10:00
Linux网络编程
Linux网络编程
——高并发服务器之select模型
1、前言1.1、IO模型下面用服务器比成车站,客户端比喻成小明。传统阻塞模型:小明去车站买票,没买到票就在车站等待,直到有车票为止。非阻塞模型:小明去车站买票,没票的话,他没过一段时间就去看看有没有票,没有票就回去。他消耗了来回的这一个过程,但是不用等待。多路转接IO复用:委托黄牛来购票。select模型就是属于这一类。下面我用两张图来描述两种1.2、select模型概念select能监听的文件描
励志成为编程大佬
·
2020-08-08 10:00
Linux
Linux网络编程
WhatSocket也是一种IPC,允许同一计算机不同应用程序通信或者不同计算的应用程序通过网络连接进行通信。socket类型有两种:字节流式socket双向可靠面向连接的字节流传输,对应的就是TCP传输数据报socket数据报的消息形式交换,不可靠,无连接,消息到达是无序、重复或者甚至不能到达,对应UDP传输相关系统调用创建套接字#include/*SeeNOTES*/#includeintso
_忘语_
·
2020-08-07 16:23
Linux系统编程
linux网络编程
TCP多人聊天室
用socket实现一个多人聊天室的思路很简单,即在服务器端定义一个fd的int型数组,用来存储已经连接的客户端的socket连接套接字fd(因为发送和接收数据都只需要借助连接套接字fd),当服务器接收到来自某一客户端的数据时,直接转发给其他所有连接着的客户端,即完成了多人聊天室服务器端:多线程进行数据的转发,记录聊天记录,向客户端发送进入退出聊天室提醒。客户端:在主线程内发送数据,多线程接收其他客
哈根达斯f
·
2020-08-06 13:36
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
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
其他