socket成长历史
主要区分udp和tcp
tcp过程
服务器端
1, socket
2 填写网络信息结构体
3 bind(这个bind,如果是在服务器中必须绑定
,但如果是在客户端中,绑定不绑定都可以,
因为在客户端一侧不绑定,内核会随机分配端口号。
而服务器若是随机分配,内核是不会返回这个端口号的,
还需要一个系统调用来获取端口号,服务器绑定是让客户端能
够找到这个ip和端口。)
4 listen(众所周知,tcp是需要三次握手的,
而这个listen的主要功能就是用来
识别三次握手,udp流程中没有这个listen,
就是因为udp不需要三次握手)
5 accept(accept的功能并不是建立一个socket句柄,
而是把已经建立好的socket交给用户进程。
并且由于socket资源属于内核管理,且内核没有办法
主动把已经建立的socket交给进程,必须由进程主动
发起,发起的就是accept,总的来说accept就是个搬运工的性质)
客户端
1 socket
2 填写服务器的网络信息结构体
3 bind(这个bind,可写可不写,因为内核会随机分配端口)
3 connect(调用这个函数就是客户端主动发起三次握手,如果
这个函数调用成功那么就表示,三次握手成功了,同样在udp中
也没有这个,udp不需要三次握手)