首先自然是我们的整体结构啦:
对于socket函数比较熟悉,也就不多讲了返回非得调用bind一个非负整数值,与文件描述符一样,在调用connect函数时,不必调用bind函数,因为如果必要的话,内核会确定源IP地址,并且选择一个临时端口作为源端口,当我们调用connect函数时,没有收到ack确认时,应该区分软错误还是硬错误。
关于bind注意的是我们在写通配地址时,IPV4(htonl(INADDR_ANY))和IPV6(in6addr_any)的不同,为了得到临时端口值,我们可以调用函数getsockname来返回协议地址。
关于listen函数我们要注意的是,第二个参数backlog,他规定了未完成连接的队列和完成的长度。还要注意SYN泛滥和IP欺骗造成的拒绝服务攻击的常用方法。
accept函数没什么好说的。
迭代服务器和并行服务器
主要是明白并行服务器是将监听和会话的任务分开
目前(《UNIX网络编程第四章》)使用的是fork()和exec().