网易云课堂-软件工程(C编程实践篇)识别代码工程质量:代码风格;封装接口;可重用代码;可重入函数和线程安全;代码风格的原则:简明、易读、无二义性;代码风格原则在团队交流过程中非常重要。
分类:
其他好文 时间:
2014-12-07 23:23:23
阅读次数:
181
Select函数Man-Page/* According to POSIX.1-2001 */
#include
/* According to earlier standards */
#include
#include
#include
int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set...
分类:
其他好文 时间:
2014-12-06 21:36:28
阅读次数:
269
阻塞I/O 说明1:当上层应用Application1调用recv系统调用时,如果对等方没有发送数据(Linux内核缓冲区中没有数据),上层应用Application1将阻塞[默认:被Linux内核阻塞)说明2:当对等方发送了数据,Linux内核recv端缓冲区数据到达,内核会把数据copy给用户空间。然后上层应用Application1解除阻塞,执行下一步操作。 非阻塞I/O 说明1: 上层应...
分类:
其他好文 时间:
2014-12-06 16:53:38
阅读次数:
208
TCP/IP协议的11种状态 说明: 1.如下图(客户端与服务器都在本机:双方(server的子进程,与client)链接已经建立(ESTABLISHED),等待通信) 2.最先调用close的一端,后面会进入TIME_WAIT的状态(下图,server端首先关闭) 3.TIME_WAIT 时间是2MSL(报文的最长存活周期的2倍) 原因:(ACK y+1)如...
分类:
其他好文 时间:
2014-12-06 15:27:57
阅读次数:
328
服务端多进程避免僵尸进程的方法1)通过忽略SIGCHLD信号,解决僵尸进程 在server端代码中添加signal(SIGCHLD, SIG_IGN);2)通过wait/waitpid方法,解决僵尸进程 signal(SIGCHLD,onSignalCatch);
void onSignalCatch(int signalNumber)
{
wait(NULL);...
分类:
其他好文 时间:
2014-12-05 17:37:02
阅读次数:
251
包尾加\n编程实践SYNOPSIS
#include
#include
ssize_t recv(int sockfd, void *buf, size_t len, int flags);与read相比,只能用于套接字文件描述符,而且多了一个flagsFlags常用取值:MSG_OOB(紧急指针,带外数据) This flag requests r...
分类:
其他好文 时间:
2014-12-05 12:46:02
阅读次数:
276
流协议与粘包粘包的表现Host A 发送数据给 Host B; 而Host B 接收数据的方式不确定 粘包产生的原因 说明TCP字节流,无边界对等方,一次读操作,不能保证完全把消息读完UDP数据报,有边界对方接受数据包的个数是不确定的 产生粘包问题的原因分析 1、SQ_SNDBUF 套接字本身有缓冲区 (发送缓冲区、接受缓冲区) 2、tcp传送的端 mss大小限制 3、链路层...
分类:
其他好文 时间:
2014-12-04 21:42:38
阅读次数:
365
一个短连接的client//短链接客户端
int main()
{
int loopCount = 20;
char sendBuf[BUFSIZ] = {0};
char recvBuf[BUFSIZ] = {0};
for (int i = 0; i < loopCount; ++i)
{
sprintf(sendBuf,"Hello...
分类:
其他好文 时间:
2014-12-04 15:37:09
阅读次数:
330
Socket API 中的地址复用 服务器端尽可能使用SO_REUSEADDR,在绑定之前尽可能调用setsockopt来设置SO_REUSEADDR套接字选项。该选项可以使得不必等待TIME_WAIT状态消失就可以重启服务器.SYNOPSIS
#include /* See NOTES */
#include
int...
分类:
其他好文 时间:
2014-12-02 22:36:18
阅读次数:
273
Socket API基本编程模型TCP客户/服务器模型 简单echo服务器模型 Socket 基础API实践socket函数#include /* See NOTES */
#include 功能:创建一个套接字用于通信原型int socket(int domain, int type, int protocol);参数 domain:指定通信协议族(proto...
分类:
其他好文 时间:
2014-12-01 22:29:40
阅读次数:
251