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网络编程基础API--TCP的数据读写API
《Linux高性能
服务器编程
》阅读笔记:1.TCP通信的读写(收发)接口 因为”Linux系统上”一切皆是文件”,那么自然读写文件用的APIread()/write()同样适用于socket。
mybright_
·
2020-08-18 19:24
Linux系统/网络编程
Linux编程
Linux网络编程基础API--socket文件描述符API
《Linux高性能
服务器编程
》阅读笔记:1.创建socket Linux系统上”一切皆是文件“,socket也不例外,它是可读/可写/可控制/可关闭的文件描述符。
mybright_
·
2020-08-18 19:52
Linux系统/网络编程
Linux编程
乱谈
服务器编程
乱谈
服务器编程
第一部分编程模型1、
服务器编程
模型关于server编程模型,大师stevens在他的《UNP》一书中已经做了详细论述,这里不再重复,这里主要讲一下我的一些理解。
weixin_33866037
·
2020-08-18 09:06
网络
服务器编程
——事件选择模型
4.3.3事件选择模型事件选择模型将每个套接字和每个WSAEVENT对象对应起来,并且在注册的时候指定需要关注的哪些网络事件。缺陷:不能同时处理多个套接字,只能同时处理一个事件对应的套接字;一个线程中处理的套接字有限,一般为64;应用程序中要处理大于64个套接字,必须额外创建线程。//事件选择TCP服务器端#include#include#pragmacomment(lib,"Ws2_32.lib
BingLZg
·
2020-08-17 11:51
erlang
服务器编程
思想和实现
刚刚读了一本书,读到最后书里写到,本节是本书的精华说在,如果读者读一遍不能理解,那就多读两遍,有必要的话读100遍也在所不惜,不求倒背如流,但求运用自如。下面会写到4个服务器程序,他们以server1,server2...这样的方式命名,好戏即将开始深吸一口气,go!!1.server1原始服务器程序server1.erl-module(server1).-export([start/2,rpc/
iteye_4537
·
2020-08-17 00:26
游戏
服务器编程
拼包函数及网络封包的异常处理(含代码)本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载、复制、传播,但任何对本文的引用都请保留作者、出处及本声明信息。谢谢!常见的网络服务器,基本上是7*24小时运转的,对于网游来说,至少要求服务器要能连续工作一周以上的时间并保证不出现服务器崩溃这样的灾难性事件。事实上,要求一个服务器在连续的满负荷
TEE168
·
2020-08-16 05:57
编程
【Linux网络编程】高并发
服务器编程
-- Reactor模式与Proactor模式
【Linux网络编程】高并发
服务器编程
--Reactor模式与Proactor模式【0】传统阻塞I/O服务模型特点1.采用阻塞式I/O模型获取输入数据;2.每个连接都需要独立的线程完成数据输入,业务处理
奋斗企鹅copper
·
2020-08-15 21:10
网络编程
服务器编程
心得(五)—— 如何编写高性能日志
一、服务器端日志与客户端日志的区别在正式讲解之前,我们先来看一个日志类的实现方法,这个日志类也是代表着大多数客户端日志的主流写法:/***@desc:程序运行log类,log.h*@author:zhangyl*@date:2017.01.17**/#ifndef__LOG_H__#define__LOG_H__#ifdef_ZYL_LOG_#defineLogInfo(...)Log::GetI
analogous_love
·
2020-08-14 16:59
服务器端编程心得
高性能服务器编程实现细节详解
libevent源码笔记(一) Reactor框架
1.libevent概述在
服务器编程
中,I/O事件、信号和定时事件是服务器程序基本都要处理和考虑的三类事件。统一处理这三类事件能使代码逻辑清晰,简单易懂。比较常用的处理方法是利用I/O复用系统。
thulpf
·
2020-08-14 07:01
libevent
服务器编程
框架的两种高效的事件处理模式——Reactor模式 + Proactor模式
两种高效的事件处理模式——Reactor模式+Proactor模式Reactor模式+Proactor模式1、背景(两句话把握基本思想)2、Reactor模式2.1、事件处理流程2.2、Reactor模型发展3、Proactor模式3.1、事件处理流程3.2、同步I/O方式模拟Proactor模式4、Reactor和Proactor优缺点和对比参考Reactor模式+Proactor模式1、背景(
JMW1407
·
2020-08-14 05:48
网络编程
Reactor模式
Proactor模式
Linux高性能
服务器编程
:进程池和线程池原理及应用(有图有代码有真相!!!)
一、问题引入在前面编写多进程、多线程服务器时通过动态创建子进程和子线程来实现并发服务器,这样做有以下缺点:1)动态创建进程、线程将会比较耗费时间,将导致较慢的客户响应。2)动态创建的子进程只为一个客户服务,将会产生大量的细微进程或线程,进程或线程之间的切换将耗费CPU大量的时间。3)动态创建的子进程是当前进程的完整映像,当前进程必须谨慎管理其分配的文件描述符和堆内存等系统资源,否则子进程可能复制这
Sharp_UP
·
2020-08-13 12:05
操作系统
Linux(
服务器编程
3.1):---高并发线程池的设计(c实现pthread_pool)
一、设计线程池的优点、作用线程池作用就是限制系统中执行线程的数量。根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进
Daback01
·
2020-08-13 11:15
后端服务器开发
Linux多线程编程之员工信息管理系统
员工信息管理系统是基于Linux多线程并发
服务器编程
,由服务器端和客户端构成,客户端可以运行在多个不同的主机上连接服务器,服务器对员工信息的操作结果通过“员工信息文件”来保存,即:“员工信息”存放在后台的文件中
cnhui2016
·
2020-08-12 01:27
Userspace开发
golang http 编程-1(
服务器编程
)
http编程http常见请求方法1.Get请求,请求一个页面或者信息2.Post请求,提交一个表单给服务器使用3.Put请求,创建一个资源,一般上传文件使用该方法4.Delete请求,删除一个信息使用该方法5.Head请求,只请求httpheader,一般监测网站状态使用该方法6.OPTIONS请求,一般监测网站支持的http方法列表7.TRACE请求(不常用),一般使用监测使用8.LOCK请求(
赵高龙
·
2020-08-12 00:26
golang
开发
Linux高性能
服务器编程
(二)
文章目录5.网络编程api5.1主机字节序、网络字节序5.2创建socket5.3绑定地址5.4创建一个监听队列来存放待处理的客户连接5.5从监听对列中接受一个连接5.6发起连接5.7关闭连接5.8数据读写5.9获取socket地址(本端、对端)5.10获取、设置socket选项5.11根据主机名(IP)获取主机的完整信息5.12根据名称(端口号)获取某个服务的完整信息6.高级I/O函数6.1pi
神秘的火柴人
·
2020-08-09 04:44
读书笔记
Linux高性能
服务器编程
(一)
1.TCP/IP协议族:数据链路层:实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。不同物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供一个统一的接口。ARP,RARP网络层:实现数据包的选路和转发。通信的两台主机一般不是直接相连的,网络层选择这些中间节点,以确定两台主机之间的通信路径,隐藏了网络拓扑结构,使得在传输层和网络应用程序看来,通信双方是直接相连的。IP
_Zqqq
·
2020-08-09 04:47
Linux高性能服务器编程
网络编程
Linux高性能
服务器编程
--线程池
用多进程或多线程实现并发服务器时有一些缺点:(1)、动态创建子进程(或线程)比较耗费时间,会导致较慢的客户响应。(2)、动态创建子进程(或线程)通常只用来为一个客户服务,这将导致系统上产生大量的细微进程(或线程)。进程(线程)间的切换将消耗大量的CPU时间。所以有了池的概念。池:在初始时,申请比刚开始要使用的资源大的资源空间,在接下来使用时,直接从池中获取资源。对比多线程,多线程如果存在客户端链接
zhuoya_
·
2020-08-09 04:43
Linux
多线程并发
服务器编程
多线程并发
服务器编程
一、实验目的理解线程的创建和终止方法;学会编写基本的多线程并发服务器程序和客户程序;理解多线程与多进程的区别。
yueguanghaidao
·
2020-08-09 03:52
c++/c
Linux高性能
服务器编程
——多线程编程(下)
多线程编程条件变量如果说互斥锁是用于同步线程对共享数据的访问的话,那么条件变量则是用于线程之间同步共享数据的值。条件变量提供了一种线程间的通信机制:当某个共享数据达到某个值得时候,唤醒等待这个共享数据的线程。条件本身是由互斥量保护的。线程在改变条件状态前必须首先锁住互斥量,其他现成在获得互斥量之前不会察觉到这种变化,因为必须锁住互斥量以后才能计算条件。条件变量的相关函数主要有如下5个:#inclu
walkerkalr
·
2020-08-08 23:46
网络编程
Linux网络编程实验——进程池实现服务器
实验取自《Linux高性能
服务器编程
》15.3节 代码已经全部上传到我的github仓库,文后附上链接。
Little Prince~
·
2020-08-08 20:06
服务器编程
——gethostbyname函数
使用这个函数,首先要包含2个头文件:#include#includestructhostent*gethostbyname(constchar*name);这个函数的传入值是域名或者主机名,例如”www.google.com”,”wpc”等等。传出值,是一个hostent的结构(如下)。如果函数调用失败,将返回NULL。structhostent{char*h_name;char**h_alias
长着胡萝卜须的栗子
·
2020-08-08 17:29
计算机网络
IO多路复用之select函数详解
IO复用我们首先来看看
服务器编程
的模型,客户端发来的请求服务端会产生一个进程来对其进行服务,每当来一个客户请求就产生一个进程来服务,然而进程不可能无限制的产生,因此为了解决大量客户端访问的问题,引入了IO
长着胡萝卜须的栗子
·
2020-08-08 17:28
Linux
《linux高性能
服务器编程
》学习笔记(一)
一。tcp/ip协议族四层协议系统:应用层:pingtelnetOSPFDNS(用户空间)传输层:TCPUDPSCTP(流控制传输协议)网络层:ICMPIP数据链路层:ARPRARP数据链路层:实现了网卡家口的网络驱动程序,以处理数据在物理媒介上的传输。网络层:实现数据包的选路和转发。由于通信的两台主机一般不是直接相连的,而是通过多个中间节点(路由器)连接的。所以说网络层的任务就是选择这些中间节点
张林林hey
·
2020-08-08 16:34
linux
Linux C网络编程 ————4、多线程
服务器编程
服务器端代码实现#include#include#include#include#include#include#include#include#include#definePORT1234#defineBACKLOG5#defineMAXDATASIZE1000voidprocess_cli(intconnfd,structsockaddr_inclient);void*function(voi
FLy_鹏程万里
·
2020-08-08 12:59
【Linux
学习】
———Linux
C网络编程
Linux高性能
服务器编程
——进程池和线程池
进程池和线程池池的概念由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正是运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。很显然,直接从池中取得所需资源比动态
walkerkalr
·
2020-08-08 11:55
网络编程
Linux网络编程实验——线程池实现服务器
本实验是按照《Linux高性能
服务器编程
》15.5节实现的。原理很简单,就是利用epoll+多线程对客户请求进行处理。代码已经放在了git仓库,下面记录了几个我遇到的问题。
Little Prince~
·
2020-08-08 11:03
【Linux网络编程】高并发
服务器编程
-- 进程池与线程池
【Linux网络编程】高并发
服务器编程
--进程池与线程池【1】动态创建进程/线程实现高并发的缺点耗费时间,响应慢;动态创建的子进程/子线程通常只能为一个客户服务,将导致系统产生大量的细微进程/线程,进程
奋斗企鹅copper
·
2020-08-08 11:42
网络编程
15.Linux 高性能
服务器编程
--- 进程池和线程池
1.动态创建进程和线程缺点:1.动态创建进程(或线程)比较耗费时间2.动态创建的子进程(或子线程)通常只用来为一个客户服务,这将导致系统上产生大量的细微进程(或线程)。进程(或线程)间的切换将消耗大量CPU时间。3.动态创建的子进程是当前进程的完整映像。当前进程必须谨慎的管理其分配的文件描述符和堆内存等系统资源。否则子进程可能复制这些资源,从而使系统的可用资源急剧下降,进而影响服务器的性能。2.进
enlyhua
·
2020-08-08 10:38
Linux
书籍
01-netty、redis、zookeeper基本介绍
1.netty简介基于NIO的客户端/
服务器编程
框架,它既能快速开发高并发、高可用、高可靠性的网络服务器程序,也能开发高可用、高可靠的客户端程序。
林帆003
·
2020-08-07 09:44
#
《Netty
Redis
Zookeeper高并发实战》
Linux高性能
服务器编程
——定时器
定时器服务器程序通常管理着众多定时事件,因此有效组织这些定时事件,使之能在预期的时间点被触发且不影响服务器的主要逻辑,对于服务器的性能有着至关重要的影响。位置我们要将每个定时事件封装成定时器,并使用某种容器类型的数据结构,比如链表、排序链表和时间轮将所有定时器串联起来,以实现对定时事件的统一管理。Linux提供三种定时方法:1.socket选项SO_RECVTIMEO和SO_SNDTIMEO。
walkerkalr
·
2020-08-05 14:20
网络编程
Linux(
服务器编程
):29---定时机制之I/O复用系统调用的超时参数
select系统调用,参见文章:https://blog.csdn.net/qq_41453285/article/details/89607091poll系统调用,参见文章:https://blog.csdn.net/qq_41453285/article/details/89672980epoll系统调用,参见文章:https://blog.csdn.net/qq_41453285/artic
江南、董少
·
2020-08-05 14:04
Linux(服务器编程)
Linux(
服务器编程
):27---定时机制之SO_RCVTIMEO、SO_SNDTIMEO选项(附设置connect超时时间案例)
Linux提供了三种定时方法,它们是:socket选项SO_RCVTIMEO和SO_SNDTIMEO:本文要介绍的SIGALRM信号,参见文章:https://blog.csdn.net/qq_41453285/article/details/103719025I/O复用系统调用的超时参数,参见文章:https://blog.csdn.net/qq_41453285/article/details
江南、董少
·
2020-08-05 14:04
Linux(服务器编程)
【网络编程】处理定时事件(二)---利用信号通知
在上一篇,我们通过Redis对定时事件的处理有了一定的认识,今天我们继续按照《高性能
服务器编程
》上边的思路,用C++来实现一个小demo。
XiyouLinux_Kangyijie
·
2020-08-05 12:28
Linux网络编程
Linux(
服务器编程
):28---定时机制之SIGALRM信号(附升序的定时器链表设计、定时器链表处理非活动连接)
Linux提供了三种定时方法,它们是:socket选项SO_RCVTIMEO和SO_SNDTIMEO:https://blog.csdn.net/qq_41453285/article/details/103697673SIGALRM信号,参见文章:本文要介绍的I/O复用系统调用的超时参数,参见文章:https://blog.csdn.net/qq_41453285/article/details
江南、董少
·
2020-08-05 12:37
Linux(服务器编程)
GO语言入门到精通(一)Golang环境搭建
先简单介绍一下Golang吧,Go是Google开发的一种编译型,可平行化,并具有垃圾回收功能的编程语言,如果你有C语言基础,那么学习go将会比较easy,go语言一般用在
服务器编程
。
咖啡不加盐
·
2020-08-05 02:34
Golang
GOGOGO!
IP协议协议--IP头部信息
《Linux高性能
服务器编程
》阅读笔记:1.IP协议概述 IP协议是TCP/IP协议簇的核心,它为上层(传输层)协议(TCP/UDP)提供无状态、无连接、不可靠的服务。
mybright_
·
2020-08-05 01:02
Linux系统/网络编程
Linux编程
IP协议协议--IP路由
《Linux高性能
服务器编程
》阅读笔记: 简单来说,路由用于决定将数据报发送到目标机器的所经路径。它是IP协议的一个核心任务,即发生在TCP/IP四层模型中的网络层。
mybright_
·
2020-08-05 01:02
Linux系统/网络编程
Linux编程
golang http
服务器编程
golanghttp
服务器编程
1.初识http是典型的C/S架构,客户端向服务端发送请求(request),服务端做出应答(response)。
SillyBirder
·
2020-08-04 17:12
go
基于TCP协议的
服务器编程
注:以下代码是在观看网易云课堂,职坐标发布的Linux网络编程|人工智能物联网时,跟着视频写的,仅为学习使用。代码出处在这里:https://study.163.com/course/courseMain.htm?share=1&shareId=1020885091&courseId=1002913013&trace_c_p_k2=f61d55ffe1e84f9d8ec0dd31b371723c1
Night_00
·
2020-08-03 22:04
Linux网络编程
Linux(
服务器编程
):10---缓冲区大小(SO_RCVBUF、SO_SNDBUF套接字选项)
套接字选项详细介绍,见文章:https://blog.csdn.net/qq_41453285/article/details/89536443一、选项简单介绍当使用setsockopt来设置TCP的接收缓冲区和发送缓冲区的大小时,系统都会将其值加倍,并且不得小于某个最小值。TCP接收缓冲区的最小值是256字节(不同系统会有不同的值),而发送缓冲区的最小值是2048字节(不同系统会有不同的值)。系
江南、董少
·
2020-08-03 03:22
Linux(服务器编程)
Linux(
服务器编程
):44---TCP长连接、短连接(心跳检测)
一、TCP连接的相关说明①使用TCP协议时,会在客户端和服务器之间建立一条虚拟的信道,这条虚拟信道就是指连接,而建议这条连接需要3次握手,拆毁这条连接需要4次挥手,可见,我们建立这条连接是有成本的,这个成本就是效率成本,简单点说就是时间成本,你要想发送一段数据,必须先3次握手(来往3个包),然后才能发送数据,发送完了,你需要4次挥手(来往4个包)来断开这个连接②CPU资源成本,三次握手和4次挥手和
江南、董少
·
2020-08-02 20:58
Linux(服务器编程)
TCP长连接
TCP短连接
心跳检测
Python之旅
Python学习之旅(第一程)Python简介创始人:荷兰人GuidoVanRossum时间:1989年Python语言的运用领域系统运维网络编程(搜索引擎、爬虫、
服务器编程
)科学计算人工智能web开发云计算大数据以及数据库编程教育游戏
zhougju
·
2020-08-02 13:50
Linux(
服务器编程
):50---Web压力测试工具(Apache Bench,ab)
一、ApacheBench介绍ApacheBench是Apache服务器自带的一个web压力测试工具,简称ab。ab又是一个命令行工具,对发起负载的本机要求很低,根据ab命令可以创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问,因此可以用来测试目标服务器的负载压力总的来说ab工具小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控二、安装ubuntu下
江南、董少
·
2020-08-02 13:06
Linux(服务器编程)
Web压力测试工具
Apache
Bench
ab
解疑
从
服务器编程
方向上讲,应该了解TCP/IP协议族,多线程编程,同步方式,各种锁,锁无关的数据结构,
shiddong
·
2020-08-01 13:07
编程人生
acl库使用FAQ
acl工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及
服务器编程
框架,同时提供更多的实用功能库。
iteye_18264
·
2020-07-30 23:39
acl开发--编译安装
acl开发--快速入门
精通Node.js: 你应该阅读的书籍
最开始的几年,在应用
服务器编程
领域,我存在着一个选择。那时候,我已经远离了C一些时间,喜欢上JavaScript很长时间。
青涛声依旧
·
2020-07-30 09:16
Node.JS
服务器编程
心得(四)——如何将socket设置为非阻塞模式
1.windows平台上无论利用socket()函数还是WSASocket()函数创建的socket都是阻塞模式的:SOCKETWSAAPIsocket(_In_intaf,_In_inttype,_In_intprotocol);SOCKETWSASocket(_In_intaf,_In_inttype,_In_intprotocol,_In_LPWSAPROTOCOL_INFOlpProtoc
张小方
·
2020-07-30 08:37
流式套接字客户端/
服务器编程
此例子将利用上一篇介绍的套接字基础概念实现一个最基本的流式套接字客户端/服务器通信程序。在该程序中,客户端和服务器将按照如下步骤交互:1)客户端向服务器发出日期请求字符串,如%D%Y%A%T等2)服务器从网络接收到日期时间请求字符串后,根据字符串格式生成对应的日期时间值返回给客户端为了简化程序美图出套接字变成的关键内容,该实例略去了对请求字符串进行合法的校验的处理。服务器端程序:#include#
蓝翳-裂缝中的阳光
·
2020-07-29 02:18
网络编程
(课程学习笔记)Python初级入门精讲
Python语言介绍1.1Python语言介绍命名:原本是一个戏剧团的名称Python1.2Python能做什么系统运维,目前在运维领域Python语言最牛逼;网络编程(爬虫:从网上扒数据然后分类,
服务器编程
唧唧牙牙
·
2020-07-28 17:18
技术支持
经过一年时间的沉淀 再次回首 TCP Socket
服务器编程
------------------前言------------------开发了这么多年,发现最困难的程序开发就是通讯系统。其他大部分系统,例如CRM/CMS/权限框架/MIS之类的,无论怎么复杂,基本上都能够本地代码本地调试,性能也不太重要。(也许这个就是.net的企业级开发的战略吧)可是来到通讯系统,一切变得困难复杂。原因实在太多了,如:性能永远是第一位:有时候一个if判断都要考虑性能,毕竟
daxi1047
·
2020-07-27 21:57
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
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
其他