阻塞socket。 –阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。 –对于文件操作read,fread函数调用会将线程阻塞。 –对于socket,accept与recv、recvfrom函数调用会将线程阻塞。 –为了避免整个进程被阻塞后挂起,所以在阻塞模式...
分类:
其他好文 时间:
2015-05-12 08:09:28
阅读次数:
233
一个程序使用套接字需要执行4个步骤。 –分配套接口和初始化。 –连接。 –发送或接收数据。 –关闭套接字。涉及到的调用包括socket、 bind、 listen、 connect、 accept、 recv、 send。分配套接口和初始化。 –我们需要做的第一件工作就是分配套接口。 –...
分类:
其他好文 时间:
2015-05-12 08:08:13
阅读次数:
114
Tcp的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB;或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击,或是是time_wait值比较高的话,我们要考虑看我们内核是否需要调优,太高的time_wait值的话会占用太多端口,要是端口少的话后果不堪..
分类:
其他好文 时间:
2015-05-06 18:09:48
阅读次数:
143
简单点说:阻塞就是干不完不准回来,一直处于等待中,直到事情处理完成才返回; 非阻塞就是你先干,我先看看有其他事没有,一发现事情被卡住,马上报告领导。我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)...
分类:
其他好文 时间:
2015-05-02 20:39:35
阅读次数:
115
转自:http://www.cnblogs.com/blankqdb/archive/2012/08/30/2663859.htmllinux send与recv函数详解1 #include 2 ssize_t recv(int sockfd, void *buff, size_t nbytes, ...
分类:
系统相关 时间:
2015-04-30 00:57:02
阅读次数:
221
UDP发送和接收MainRecv.cpp#include #include #include #pragma comment(lib,"ws2_32.lib")#define RECV_IP "127.0.0.1"#define RECV_PORT 8899#define LEN_RECV_BUF ...
分类:
其他好文 时间:
2015-04-29 19:18:17
阅读次数:
130
这一节主要关注的还是粘包问题,我们利用recv实现一个recv_peek函数,它的目的是偷窥目的,它是利用recv的一个msg_peek参数与read的区别,read读取后会擦除缓冲区的内容,而recv结合msg_peek会读取的时候并不擦除缓冲区的内容,起到一个可以偷窥的目的,利用这个特性可以用r...
分类:
其他好文 时间:
2015-04-28 01:50:25
阅读次数:
114
相关函数:send, sendmsg, recv, recvfrom, socket头文件:#include #include 定义函数:int sendto(int s, const void * msg, int len, unsigned int flags, const structsoc....
分类:
编程语言 时间:
2015-04-23 09:27:24
阅读次数:
190
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手...
分类:
其他好文 时间:
2015-04-22 09:43:21
阅读次数:
159
在mac下安装/更新ruby环境确实是挺繁琐的。首先mac os x是自带ruby环境的, 我们通过rvm(ruby version manager)来对ruby的版本进行管理只要执行下面2句就行了:$ gpg2 --keyserver hkp://keys.gnupg.net --recv-key...
分类:
系统相关 时间:
2015-04-17 09:31:06
阅读次数:
179