网络编程
网络编程基础 常见问题 Socket API 网络编程一般步骤? TCP: 服务端:socket -> bind -> listen -> accept -> recv/send -> close。 客户端:socket -> connect -> send/recv -> close。 UDP: 服务端:socket -> bind -> recvfrom/sendto -> close。 客户端:socket -> sendto/recvfrom -> close。 send、sendto区别,recv、recvfrom区别? TCP/UDP TCP和UDP区别? TCP面向连接(三次握手),通信前需要先建立连接;UDP面向无连接,通信前不需要连接。 TCP通过序号、重传、流量控制、拥塞控制实现可靠传输;UDP不保障可靠传输,尽最大努力交付。 TCP面向字节流传输,因此可以被分割并在接收端重组;UDP面向数据报传输。 TCP为什么不是两次握手而是三次? 如果仅两次连接可能出现一种情况:客户端发送完连接报文(第一次握手)后由于网络不好,延时很久后报文到达服务端,服务端接收到报文后向客户端发起连接(第二次握手)。此时客户端会认定此报文为失效报文,但在两次握手情况下服务端会认为已经建立起了连接,服务端会一直等待客户端发送数据,但因为客户端会认为服务端第二次握手的回复是对失效请求的回复