[url]http://zh.wikipedia.org/wiki/%E5%AD%97%E8%8A%82%E5%BA%8F[/url]
, 只要有水, 就会一直流向低处, 不会间断. TCP为了提高传输效率, 发送数据的时候, 并不是直接发送数据到网路, 而是先暂存到系统缓冲, 超过时间或者缓冲满了, 才把缓冲区的内容发送出去, 这样, 就可以有效提高发送效率. 所以会造成所谓的粘包, 即前一份Send的数据...
广泛应用...
UDP:是无连接不可靠的数据报协议,一些常见的程序有:DNS(域名系统),NFS(网络文件系统)和SNMP(简单网络管理协议).UD收端之间发...
以下头文件都是#include1.socket函数:指定期望的通信协议类型int socket(int family,int type,int protocol);返回值叫做套接字描
[url]http://blog.chinaunix.net/uid-23069658-id-3160506.html[/url]
信号就是软件中断,它提供了一种处理异步事件的方法,例如,终端用户键入中断键,则会通过信号机制停止一个程序,或及早终止管道中的下一个程序.信号以SIG开头,SIGABRT是夭折信号,当进程调用abort函数时产生这种信号.SIGALRM是闹钟信号,当由alarm函数设置的计时器超时后产生此信号.SIGINT:用户DELETE或Ctrl+C[code="c++"]#include ...
[code="c++"]#include #include #include using namespace std;int * g_ptr = NULL;pthread_cond_t g_cond = PTHREAD_COND_INITIALIZER;pthread_mutex_t g_mutex;void* testCond(void*){ ...
线程的分离与结合 在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了线程的默认属性,
TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得注意的状态有两个:CLOSE_WAIT和TIME_WAIT。 TIME_WAIT TIME_WAIT 是主
connect连接时如果跨网段会造成超时,这样会阻塞当前,如果是带GUI的,则会卡住程序,这样有2种解决方法:1.用多线程,将连接放在线程中去处理,这样要等也没关系2.但是实际上还可以设置非阻塞,然后select,这样也会卡,但是这个卡的时间可以自己去设定,那么卡2,3秒是可以满足目前的需求的#define CONNECT_TIME_OUT 3[code="c++"] ...
连接建立的三次握手:1.请求端发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN)2.服务器发回包含服务器的初始
包裹函数:程序通常会检测调用是否正确,如果出输会将错误信息输出.包裹函数就是在完成实际的函数调用,检查返回值,并在发生错误时终止进程.约定包裹函数名是实际函数名的首字母大写形式[code="c"]bool fun(int i);bool Fun(int i)//Fun包裹了fun{ if(fun){ .... }else{ ...
pthread_create:创建新的控制流pthread_exit:从现有的控制流中退出pthread_join:从控制流中得到退出状态pthread_cleanup_push:注册在退出控制流时调用的函数pthread_self:获取控制流的IDpthread_cancel:请求控制流的非正常退出[code="c"]#include"apue.h"//#...
互斥量:用pthread_mutex_t数据类型来表示,在使用互斥变量以前,必须首先对它进行初始化,可以把它置为常量PTHREAD_MUTEX_INITIALIZER(只对静态分配的互斥量),也可以通过调用pthread_mutex_init函数进行初始化。如果动态地分配互斥量(例如通过调用malloc函数),那么在释放内存前需要调用pthread_mutex_destroy.改写了个以前...
以前觉得C一无是处,毕业后发现C无所不能,面试时被玩C的鄙视过若干次,从此开始讨厌C,分析过1,2个C的开源框架后,渐生好感,因工作需要又回到了原点。当我从京东买花了200多大洋买回unix网络编程等书时,老大说你用c++也可以,于是还没开始就结束了.但是钱还是不能白花对吧,这书买了还是得look下的...
[code="c"] struct rlimit r_limit; r_limit.rlim_cur = 4096; r_limit.rlim_max = 4096; if (setrlimit(RLIMIT_NOFILE, &r_limit) == -1) { printf("FAIL\n"); return 1; ...
Tcp(Transmission Control Protocol):传输控制协议,它是一种面向连接的协议,为用户进程提供可靠的全双工字节流.TCP套接字是一种流套接字.主要关心确认,超时和重传之类的细节. RTT(round-trip time):往返时间 UDP(User Datagram Protocol):无连接协议,UDP套接字是一种数据报套接字
进程把一个套接字设置成非阻塞是在通知内核:当所请求的IO操作非得把本进程投入睡眠才能完成时,不要把本进程投入睡眠,而是返回一个错误.同步IO:导致请求进程阻塞,直到IO操作完成异步IO:不导致请求进程阻塞.信号驱动IO:让内核描述符就绪时发送SIGIO信号通知我们.异步IO通过告知内核启动某个,并让内核在整个操作(包括将数据从内核复制到我们自己的缓冲区)完成后通知我们.这种...
IANA(the Internet Assigned Numbers Authority,因特网已分配数值权威机构)维护着一个端口号分配状况的清单.
信号(signal):就是告知某个进程发生了某个事件的通知,有时也称为软件中断(software interrupt).信号通常是异步的.一般可以由一个进程发给另一个进程,或由内核发给某个进程....
RTT(round-trip time):往返时间
#include#includeint select(int maxfdp1,fd_set *readset,fd_set *writeset,fd_set *exceptset,const struct timeval *timeout);允许进程指示内核等待多个事件中的任何一个发生,并只有在一个或多个事件发生或经历一段指定的时间后才唤醒它.我们可以调用select告知内核对哪些...
#include#include#includeint pselect(int maxfdp1,fd_set *readset,fd_set *writeset,fd_set *exceptset,const struct timespec *timeout,const sigset_t *sigmask);若有描述符返回其数目,若超过则为0,出错为-1...
#includeint shutdown(int sockfd,int howto);它比close少了2个限制:1.close把描述符的引用计数减1,仅在该计数变为0时才关闭套接字.使用shutdown可以不管引用计数就激发TCP的正常连接终止序列.2.close终止读和写两个方向的数据传送...
#includeint poll(struct pollfd *fdarray,unsignd long nfds,int timeout);第一个参数指向一个结构数组第一个元素的指针.每个数组元素都是一个pollfd结构,用于指定测试某个给定描述符fd的条件.timeout:是毫秒数...
bind:berkeley internet name domain...
TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数.它指定了数据报的生存时间.TTL的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1.当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机....
SLIP(Serial Line IP):串行线路IP它是一种串行线路上对IP数据报进行封装的简单形式,在RFC1055中详细描述.链路层主要有三个目的:1.为IP模块发送和接收IP数据报2.为ARP模块发送ARP请求和接收ARP应答3.为RARP发送RARP请求和接收RARP应答PPP:点对点协议1.在串行链路上封装IP数据报的方法.2.建立,配置及测试数据链...
TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP segment)IP传给网络接口层的数据单元称作IP数据报(IP datagram)通过以太网传输的比特流称作帧(Frame),其物理特性是其长度必须在46-1500之间UDP传输给IP的信息单元称作UDP数据报(UDP datagram),而且UDP的首部长为8字节TCP,UDP,ICMP和IGMP...
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号