socket网络编程
网络编程步骤
TCP
-
服务端:socket -> bind -> listen -> accept -> recv/send -> close
- 创建一个socket,用函数socket(),设置SOCK_STREAM
- 设置服务器地址和侦听端口,初始化要绑定的网络地址结构
- 绑定服务器端IP地址、端口等信息到socket上,用函数bind()
- 设置允许的最大连接数,用函数listen()
- 接收客户端上来的连接,用函数accept()
- 收发数据,用函数send()和recv(),或者read()和write()
- 关闭网络连接close(),需要关闭服务端sock和accept产生的客户端sock文件描述符
-
客户端:socket -> connect -> send/recv -> close
- 创建一个socket,用函数socket()
- 设置要连接的对方的IP地址和端口等属性
- 连接服务器,用函数connect()
- 收发数据,用函数send()和recv(),或read()和write()
- 关闭网络连接close()
-
注意
- INADDR_ANY表示本机任意地址,一般服务器端都可以这样写
- accept中接收的是客户端的地址,返回对应当前客户端的一个clisock文件描述符,表示当前客户端的tcp连接
- send和recv中接收的是新建立的客户端的sock地址
UDP
- 服务端:socket -> bind -> recvfrom/sendto -> close
- 建立套接字文件描述符,使用函数socket()