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
Unix网络编程
UNIX网络编程
:读写锁
之前我们整理了互斥锁与条件变量问题它保证了共享资源的安全,但在多线程中我们也会经常对共享数据进行读、写操作。也就是说对某些资源的访问会存在两种可能的情况,一种是访问必须是排查性的,就是独占的意思,这称作写操作;另一种情况就是访问方式可以是共享的,就是说可以有多个线程同时去访问某个资源,这种就称作读操作。这个问题模型是从对文件的读写操作中引申出来的。读写锁比起mutex具有更高的适用性,具有更高的并
Dandelion_gong
·
2016-06-01 17:09
UNIX网络编程
UNIX网络编程
:读写锁
之前我们整理了互斥锁与条件变量问题它保证了共享资源的安全,但在多线程中我们也会经常对共享数据进行读、写操作。也就是说对某些资源的访问会存在两种可能的情况,一种是访问必须是排查性的,就是独占的意思,这称作写操作;另一种情况就是访问方式可以是共享的,就是说可以有多个线程同时去访问某个资源,这种就称作读操作。这个问题模型是从对文件的读写操作中引申出来的。读写锁比起mutex具有更高的适用性,具有更高的并
Dandelion_gong
·
2016-06-01 17:00
多线程
unix
网络编程
读写锁
重新审视进程间的通信(一)
当初自己走马观花似的学习以为内容很简单,结果留下了大坑,借来
Unix网络编程
来补补,重新审视这两个部分,并且引以为戒!!!
protoss_penguin
·
2016-06-01 00:00
UNIX网络编程
:互斥锁和条件变量
在网络编程中,一般都是多线程的编程,这就出现了一个问题:数据的同步与共享。而互斥锁和条件变量就是为了允许在线程或进程间共享数据、同步的两种最基本的组成部分。它们总能够用来同步一个进程中的多个线程。再进入互斥锁和条件变量之前,我们先对多线程的一些相关函数进行简单介绍:多线程简单介绍和相关函数:通常,一个进程中包括多个线程,每个线程都是CPU进行调度的基本单位,多线程可以说是在共享内存空间中并发地多道
Dandelion_gong
·
2016-05-31 16:00
多线程
unix
网络编程
互斥锁
条件变量
Unix网络编程
-同步
1、互斥锁(量)和条件变量默认情况下互斥锁和条件变量用于线程间同步,若将它们放在共享内存区,也能用于进程间同步。1.1互斥锁1、概述:互斥锁(Mutex,也称互斥量),防止多个线程对一个公共资源做读写操作的机制,以保证共享数据的完整性。用以保护临界区,以保证任何时候只有一个线程(或进程)在访问共享资源(如代码段)。保护临界区的代码形式:lock_the_mutex(...); 临界区 unlock
will130
·
2016-05-29 11:00
网络编程
I/O复用和I/O模型
由《
Unix网络编程
卷1》总结而来。1、I/O复用同时监视多个I/O条件,在其中任意一个就绪时通知进程,这样的能力称为I/O复用。
will130
·
2016-05-27 18:00
网络编程
UNIX网络编程
笔记(3)—基本TCP套接字编程
基本TCP套接字编程主要介绍一个完整的TCP客户/服务器程序需要的基本套接字函数。1.概述在整个TCP客户/服务程序中,用到的函数就那么几个,其整体框图如下:2.socket函数为了执行网络I/O,一个进程必须要做的事情就是调用socket函数。其函数声明如下:#include intsocket(intfamily,inttype,intprotocol);其中:family:指定协议族type
zhangxiao93
·
2016-05-27 10:00
unix
socket
tcp
网络编程
UNIX网络编程
笔记(2)—套接字编程简介
套接字编程概述说到网络编程一定都离不开套接字,以前用起来的时候大多靠记下来它的用法,这一次希望能理解一些更底层的东西,当然这些都是网络编程的基础~(1)套接字地址结构大多说套接字函数都需要一个指向套接字地址结构的指针作为参数,每个协议族都定义它自己的套接字地址结构,这些结构都以sockadd_开头。IPV4套接字地址结构IPv4套接字地址结构通常称为“网际套接字地址结构”,以sockaddr_in
zhangxiao93
·
2016-05-22 11:00
unix
网络编程
套接字
UNIX网络编程
之线程浅析
什么是线程:线程是一个进程内部的控制系列;线程是CPU调度的基本单位线程的优点:(1)通过为每种事件类型的处理分配单独的线程,能够简化处理异步时间的代码。(2)多个线程可以自动共享相同的存储地址空间和文件描述符。(3)有些问题可以通过将其分解从而改善整个程序的吞吐量。(4)交互的程序可以通过使用多线程实现相应时间的改善,多线程可以把程序中处理用户输入输出的部分与其它部分分开。线程的缺点:在多线程程
github_33736971
·
2016-05-20 23:00
多线程
线程
网络编程
线程的标记和结构
线程的优缺点
UNIX网络编程
:消息队列
IPC中除了管道PIPE、FIFO、信号量和共享内存区意外,还有一个很重要的形式——消息队列。消息队列相比共享内存来说,它本身带有同步机制。消息队列是将消息按队列的方式组织成的链表,每个消息都是其中的一个节点。消息队列的运行方式与命名管道非常相似。欲与其他进程通信的进程只要将消息发送到消息队列中,目的进程就从消息队列中读取需要的消息。需要注意的是,消息队列的长度以及每个消息的大小都是有限制的。Li
Dandelion_gong
·
2016-05-19 15:00
unix
通信
网络编程
消息队列
PHP程序员进阶之路好书籍推荐
·《
UNIX网络编程
卷1(第3版)》·《
UNIX网络编程
卷2(第2版)》·《UNIX环境高级编程(第3版)》·《UNIX编程艺术》·《MySQL技术内幕(第5版)》·《深入理解计算机系统》·《用TCP/
coco510
·
2016-05-19 14:54
UNIX网络编程
之管道
管道所有式样的UNIX都提供管道。它由pipe函数创建。提供一个单路(单向)数据流。函数原型:#includeintpipe(intfd[2])该函数返回两个文件描述符:fd[0]和fd[1]。前者打开来读,后者打开来写。单个进程中的管道:两个不同进程间的通信:下面给出一个简单的客户端和服务器例子。main函数创建两个管道并用fork生成一个子进程。客户然后作为父进程运行,服务器作为子进程运行,第
fantasy_linux
·
2016-05-17 19:10
网络编程
UNIX网络编程
:共享内存区
IPC形式除了管道、FIFO、信号量以外,还有共享内存区和消息队列。这里主要堆共享内存进行介绍。共享内存区是可用IPC形式中最快的。一旦这样的内存区映射到共享它的进程地址空间,这些进程间数据的传递就不再涉及内核。共享内存与其他进程通信方式相比较,不需要复制数据,直接读写内存,是一种效率非常高的进程通信方案。但它本身不提供同步访问机制,需要我们自己控制。在LINUX中,只要把共享内存段连接到进程的地
Dandelion_gong
·
2016-05-17 17:00
unix
网络编程
共享内存
同步形式
UNIX网络编程
笔记(1)—传输层协议
开始学习网络编程的经典《
UNIX网络编程
》(第3版)作为研究生阶段的副本练习吧,厚厚一本书,希望能坚持看下去,坚持做些笔记。
zhangxiao93
·
2016-05-17 11:00
unix
IP
tcp
网络编程
UNIX网络编程
:IPC之信号量
信号量:主要用来控制多个进程对临界资源的互斥访问,进程通过信号量来判断是否有可以访问的资源,信号量是一种同步机制信号是一种处理异步事件的方法;不同于信号量信号量是一个计数器可用于同步多进程对共享数据对象的访问;要获得共享资源,进程需要:(1)测试控制该资源的信号量;(2)若此信号量值为正,则进程可以使用该资源,进程将信号量值减一,表示进程使用了一个资源单位;(3)若此信号量值为0,则进程进入睡眠状
github_33736971
·
2016-05-17 01:00
网络编程
ipc
信号量
semget
semctl-op
UNIX网络编程
: IPC之共享内存
共享内存:是系统创建的特殊地址空间,允许不相干的多个进程使用该空间,即多个进程能够使用同一块内存的数据;优点:共享内存不需要复制数据,直接读写内存,效率非常高;缺点:但是它本身不提供同步访问机制,我们可以通过信号量来进行控制其同步访问机制;共享内存的操作函数如下:shmgetintshmget(key_tkey,intshmsz,intshmflg)该函数创建或访问一个共享内存区;key值是fto
github_33736971
·
2016-05-16 23:00
网络编程
信号量
共享内存
shmget
shmat-dt
UNIX网络编程
:信号量semphore
信号量是一种用于提供不同进程间或一个给定进程的不同线程件同步手段的原语.信号量是一个特殊的整数值,主要用来控制多个进程对临界资源的互斥访问,进程根据信号量来判断是否有访问的资源。信号量是一个计数器,可用于同步多进程对共享数据对象得访问,为了获得共享资源,进程需要执行以下操作:1、测试控制该资源的信号量2、若此信号量的值为正,则进程可以使用该资源,进程将信号量值减1,表示它使用了一个资源单位3、若此
Dandelion_gong
·
2016-05-16 22:00
unix
网络编程
信号量
UNIX网络编程
:IPC之消息队列
消息队列:将消息队列按队列的方式组织成的链表,每个消息都是其中的一个节点;注意:消息队列的长度及每个消息的大小是有限制的消息队列的操作函数如下:msggetintmsgget(key_tkey,intmsgflg);该函数作用是:创建一个消息队列或访问一个已经存在的消息队列;成功返回标示符,出错返回-1;其第一个参数是一个整数IPC键,由ftok函数产生,或者直接是常值IPC_PRIVATE;ms
github_33736971
·
2016-05-16 21:00
网络编程
消息队列
msgget
msgctl
msgsnd-rcv
UNIX网络编程
之管道与FIFO
管道是最初的UnixIPC形式,它们的最大局限是没有名字,所以,管道只能用于有亲缘关系的进程只见使用。之后,慢慢随着FIFO的加入,这点才有所改观。FIFO也成为又名管道。管道和FIFO的共同点就是它们都是通过read和write函数进行访问的。管道:管道时有pipe函数创建,提供一个单路数据流。也就是说,所有的管道都是半双工。管道创建方法:#includeintpipe(intfd[2]);该函
Dandelion_gong
·
2016-05-16 18:00
unix
网络编程
ipc
管道
fifo
【
Unix网络编程
】socket函数与描述符
SocketSocket用于创建一个会话的端点,返回一个描述符.失败将返回-1,并设置errno.#includeintsocket(intdomain,inttype,intprotocol);参数domain用于指定会话的区域.这个选择决定用于会话的协议族.这些协议族位于sys/socket.h参考手册.NamePurposeManpageAF_UNIX,AF_LOCALLocalcommun
Hivoodoo
·
2016-05-13 13:03
网络编程
Unix网络编程
之UDP常见缺陷与实例
UDP与TCP相比,各有优缺点,下来来列举一下UDP的缺点:1.UDP是一种不可靠的协议(缺乏流量控制)实例代码://server.c#include#include#include#include#includeintmain(){ intsockfd; structsockaddr_inservaddr,clientaddr; charrecv[1024]; socklen_t
xiyou222
·
2016-05-10 16:00
unix网络编程
Unix网络编程
之UDP实例
首先先看一下UDP客户/服务器交互的典型情形,如下图:由上图可知,客户端程序不需要与服务器端建立连接,只需要调用sendto函数向服务器发送数据,或者调用recvfrom函数从服务器接收数据即可。最明显地特点就是服务器端只是比客户端多调用了一个bind函数来显式绑定一个端口。事实上客户端也可以通过bind来绑定端口,只不过没有那个必要。实例代码://server.c#include#include
xiyou222
·
2016-05-10 12:00
unix网络编程
Unix网络编程
之套接口选项
在
Unix网络编程
中,有非常多的套接口选项(虽然其中大多数并不常见),如下表所示:套接口层和IP层的套接口选项汇总:传输层的套接口选项汇总:套接口选项分为两大基本类型:一是开启或禁止某个特性的二元选项(
xiyou222
·
2016-05-05 23:00
unix网络编程
ubuntu12.04下
unix网络编程
apue的配置
我的系统是ubuntu12.04,现在将
unix网络编程
中apue.h的配置方法进行总结,以方便下次使用。1.进入目录,运行.
从小爱吃鱼
·
2016-05-04 14:55
unix网络编程
Unix网络编程
之常见的数据结构
在Unix/Linux网络编程中,会涉及到很多的数据结构,下面来总结一下:IPv4相关结构:structin_addr{ in_addr_t s_addr; //表示32位的IP地址,32位无符号整型}structsockaddr_in{ uint8_t sin_len; //表示该结构体的长度,8位无符号整型 sa_family_
xiyou222
·
2016-05-03 20:00
unix网络编程
Unix网络编程
—为客户端进程指定端口
了解Unix/Linux的人都知道,一般而言,只会在服务器端的监听进程才会指定端口,那么客户端的进程是否也能够指定端口呢?我们同样利用bind函数来为客户端的进程指定端口。首先,我们运行一个不指定端口的客户端程序,看一下数据包传输的情况:1.通过sudotcpdump命令打开工具软件2.执行客户端程序3.观察数据包传输的情况结果如下:关于数据包的内容我就不解释了,我们只要知道,master是客户端
xiyou222
·
2016-05-02 16:00
网络编程
NIO2.0
JDK1.7升级了NIO类库,升级后的NIO类库被称为NIO2.0,引人注目的是,Java正式提供了异步文件I/O操作,同时提供了与
UNIX网络编程
事件驱动I/O对应的AIO。
zero__007
·
2016-05-02 08:00
网络编程的实践过程中总结出来的一些经验(转)
本文是我在进行MS-Windows、HP-
Unix网络编程
的实践过程中总结出来的一些经验,仅供大家参考。本文所谈到的Socket函数如果没有特别说明,都是指的Windows Socket API。
zww0815
·
2016-04-28 16:00
unix网络编程
中的unp.h
/*Ourownheader.Tabsaresetfor4spaces,not8*/#ifndef__unp_h#define__unp_h#include"/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/config.h" /*configurationoptionsforcurrentOS*/ /*"../co
斯多葛先生
·
2016-04-28 04:00
linux
网络编程
套接字
网络IO之阻塞、非阻塞、同步、异步总结
unix网络编程
第一卷第六章专门讨论五种不同的IO模型,Stevens讲的非常详细,我记得去年看第一遍时候,似懂非懂,没有深入理解。
孙赫奕
·
2016-04-19 10:00
UNP(一):网络编程角度下的TCP、UDP协议
TCP、UDP概述在前面《计算机网络与TCP/IP》栏目下已经介绍过一些关于TCP、UDP的相关知识TCP/IP(三):传输层TCP与UDP,这里只是简单从
UNIX网络编程
的角度介绍TCP、UDP协议。
sweetgum2012
·
2016-04-18 16:00
tcp
网络编程
UDP
网络发送数据字节序的处理
参考
unix网络编程
卷1的5.18节,下面贴几张图以下文字复制自论大小端对于跨平台的程序或者所用数据牵扯到不同平台的程序(例如网络编程),大小端字节序是个值得考虑的事情。
u013281495
·
2016-04-16 09:00
确定主机字节序的程序
参考《
Unix网络编程
.卷1》P64
yvhqbat
·
2016-04-15 17:00
TCP协议疑难杂症全景解析
因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/IP详解》(卷一,卷二)以及《
Unix网络编程
》以及Linux源代码之外,学习网络更好的资
weiyuefei
·
2016-04-13 00:00
《
UNIX网络编程
》例子程序中所使用的 包裹函数 及 部分常量
转载地址:http://blog.chinaunix.net/uid-28977986-id-3886809.html 《
UNIX网络编程
套接字联网API》这本书的示例中定义了许多包裹函数,它们的名称和标准函数一样
hbtj_1216
·
2016-04-12 20:00
linux
socket
unix
C语言
网络编程
unix网络编程
笔记(四)--IO复用
第六章笔记1.IO复用:(1)需要IO复用的原因:echo客户端同时需要读终端和套接字会遇到这样的问题:如果客户端面向两个文件描述符,控制和连接套接字,那么就不能同时收到终端和套接字的数据,如果客户端阻塞在终端,那即使服务器发来了close也不能立即处理。这样的进程需要一种预先告知内核的能力,使得内核一旦发现进程指定的一个或多个IO条件就绪(也就是说输入已准备好被读取,或者描述符已能承担更多的输入
sunny_ss12
·
2016-04-11 16:00
unix
网络编程
unix网络编程
笔记(三)
第五章笔记1.僵死进程问题:按照第四章9.5典型的并发服务器程序轮廓编写代码,如果父进程fork子进程,但没有wait,当子进程退出后会出现僵死进程。1.1定义:一个进程使用fork创建子进程,如果子进程先于父进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。1.2出现原因:unix提供了一种机制可以保证只要父
sunny_ss12
·
2016-04-08 16:00
unix
网络编程
unix网络编程
笔记(二)
第四章笔记1.基本Tcp客户端/服务器程序的套接字函数2.socket函数:intsocket(intfamily,inttype,intprotocol);(1)socket有三个函数,除了tcpudp外还支持许多协议。(2)对于tcp协议:三个参数分别为AF_INET/AF_INET6、SOCK_STREAM、0(3)对于udp协议:三个参数分别为AF_INET/AF_INET6、SOCK_D
sunny_ss12
·
2016-04-06 00:00
unix
网络编程
网络编程总结(一)
这几天在看muduo网络库,顺便第二次详细的精读一下《
unix网络编程
》。在这里从最基础的编程模型开始,记录一下一步步改进程序的过程和细碎的知识点。首先看一下启动一个服务器程序所必须的库函数。
lijun538
·
2016-04-05 22:09
网络编程
网络编程总结(一)
这几天在看muduo网络库,顺便第二次详细的精读一下《
unix网络编程
》。在这里从最基础的编程模型开始,记录一下一步步改进程序的过程和细碎的知识点。首先看一下启动一个服务器程序所必须的库函数。
lijun538
·
2016-04-05 22:00
socket
unix
网络编程
unix网络编程
笔记(一)
第三章笔记1.套接字地址:1.1分类:套接字地址分两种,一种是通用套接字地址类型structsockaddr,它只是为了在套接字函数中可以传入任意套接字地址而定义的结构体,功能类似于void*,而出现定义套接字函数时还没有出现void*,所以才定义了该结构体。sockaddr使用unsignedshortintsa_family来表明具体地址类型。另一种是具体协议的套接字地址类型,如果需要具体的套
sunny_ss12
·
2016-04-05 15:00
unix
网络编程
地址转换函数:inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
地址转换函数:inet_aton&inet_ntoa&inet_addr和inet_pton&inet_ntop在
Unix网络编程
中,我们常用到地址转换函数,它将ASCII字符串(如"206.62.226.33
pingglala
·
2016-04-02 20:44
二进制
网络编程
十进制
include
Ipv6地址
网络IO,阻塞,非阻塞,异步,同步io的总结
unix网络编程
第一卷第六章专门讨论五种不同的IO模型,讲的很详细,这里做一点总结。2、数据流向 网络IO操作实际过程涉及到内核和调用这个IO操作的进程。
eversliver
·
2016-04-02 10:00
jdk7:浅谈 AIO NIO2.0
同步异步阻塞和非阻塞等概念,建议参考《
Unix网络编程
》卷1.,这里只谈AIO的api。
码农贾维斯
·
2016-04-01 00:00
java
nio
aio
UNIX网络编程
进程间通信概述
IPC(interprocesscommunication)RPC(RemoteProcedureCall)Posix(PortableOperatingSystemInterface)进程原语(fork、exec、信号、定时器)进程环境(用户ID、进程组)文件与目录(所有I/O函数)系统数据库(口令文件和用户组文件)tar与cpio归档格式Unix中的IPC:消息传递——管道、FIFO、消息队列
LZQ_daily
·
2016-03-28 14:39
进程间通信
网络:多个进程能否监听同一个端口号?
根据
Unix网络编程
中的知识可知,服务端监听一个端口会经历:1、根据套接字类型(Ipv4,Ipv6等)创建套接字socket2、将套
jiq408694711
·
2016-03-22 22:00
UNIX网络编程
:select,epoll,poll比较
select,poll,epoll简介selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1单个进程可监视的fd数量被限制2需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大3对socket进行扫描时是线性扫描pollpoll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每
xiaojun111111
·
2016-03-22 18:00
epoll
poll
select对比
UNIX网络编程
之旅-配置unp.h头文件环境
最近在学习
Unix网络编程
(UNP),书中steven在处理网络编程时只用了一个#include“unp.h” 相当有个性并且也很便捷于是我把第三版的源代码编译实现了这个过程,算是一种个性化的开发环境的搭建吧
hbtj_1216
·
2016-03-19 16:00
linux
unix
网络编程
unix 网络编程 头件下载安装
关于最近在学网络编程,借了一本书《
UNIX网络编程
第一卷:套接口API(第3版)》STEVENS大神著的!学习编程这东西,看代码,改代码,运行代码这样才能学到实际东西!
t1234xy4
·
2016-03-18 17:00
unix
网络编程
套接字编程简介
整理自《
Unix网络编程
卷一》第三章套接字通信主要目的是实现数据的交互,但是为了实现数据的交互我们通常还有许多工作要做。
Windeal
·
2016-03-16 21:00
编程
unix
网络编程
套接字
上一页
10
11
12
13
14
15
16
17
下一页
按字母分类:
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
其他