TCP编程流程

传输层:TCP协议 UDP协议

TCP:面向连接 可靠地 字节流服务

UDP:无连接 不可靠的 数据报服务

在网络编程中都遵循一种C/S结构,有一段程序是作为客户端,一段程序是作为服务器的。

TCP服务器端的编程流程

1
2
3
4
5
6
7
8
9
1.创建用于监听的socket套接字:int socket();
2.命名创建的socket套接字:int bind();
服务器的地址信息:struct sockaddr_in;
IP地址+端口号
3.创建监听队列:int listen();
4.获取一个客户端连接,返回连接socket套接字:int accept();
5.int recv();接受数据
6.int send();发送数据
7.int close();关闭连接

TCP客户端的编程流程

1
2
3
4
5
6
1.创建用于和服务器通信的socket套接字:int socket();
2.与服务器连接:int connect();成功返回0,失败返回-1
3.若连接失败,客户端的程序应该退出。
4.若连接成功,int send();发送数据
5.int recv();接受数据
6.int close();关闭连接

example:

如果客户端和服务端程序连接已经完成,进行数据通信。客户端调用send()发送“hello”,send()的功能只是将”hello“放到客户端的TCP发送缓冲区,再根据内核的协议控制,通过网络传输到服务器端的TCP接受缓冲区,服务器端的recv()再从TCP接受缓冲区中读取数据。