网络编程基础知识
IP地址(网络层):即网络中的门牌号,用点分十进制表示(默认IPV4)
端口号(传输层协议)
-
一个2字节16位的整数
-
用来标识一个进程
-
IP地址+端口号可以标识一个唯一的进程
-
一个端口号只能被一个进程占用
端口号和进程PID的区别?
端口号是在网络传输的方面对进程的标识
进程ID是在操作系统上对它的一个唯一的标识
TCP协议(传输控制协议)
-
传输层协议
-
面向字节流(一个一个发)
-
可靠传输
-
有连接
UDP协议(用户数据包协议)
-
传输层协议
-
无连接
-
不可靠传输(数据要是丢了,发送方不清楚)
-
面向数据报(一块一块发)
网络字节序
字节序,即大端模式还有小端模式
网络传输流有大端和小端之分,在发送数据的时候要规定是大端发送还是小端发送,不能混用
socket
socket文件描述符:一个特殊的文件类型
socket网络编程步骤
-
创建socket文件描述符
-
绑定端口号(TCP/UDP)
-
监听(专用于TCP,让socket变成被动模式,即可以被动的让人建立连接)
-
接受请求(TCP):bind
-
建立连接(TCP):connect
-
发送数据(TCP):send
-
发送数据(TCP/UDP):sendto
-
接受数据(TCP):recv
-
接受数据(TCP/UDP):recvfrom
-
关闭打开的文件描述符
UDP编程
udp版本的服务器和客户端
Tcp版本的客户端和服务器
TCP版本的多进程服务器
TCP版本的多线程服务器
码云地址:https://gitee.com/zmmya/tcpudp