如何用socket编程实现持续发送,让长尾永不落幕?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2075个文字,预计阅读时间需要9分钟。
在上一篇文章中,我们提到了客户端发送数据后,无论服务端还是客户端都退出,且只能发送一次数据,这显然不符合实际使用需求。那么,应该如何改进程序呢?
1. 持续监听客户端连接:服务端程序应持续监听客户端的连接请求,一旦有客户端连接,就进入数据交互流程。
2. 循环接收数据:在数据交互流程中,服务端应循环接收客户端发送的数据,直到客户端发送结束信号或超时。
3. 数据处理与响应:服务端对客户端发送的数据进行处理,并返回相应的响应。
4. 关闭连接:在数据交互完成后,服务端和客户端应关闭连接,以便其他客户端可以连接。
改进后的程序流程如下:
1. 服务端启动,持续监听客户端连接。
2.客户端连接成功后,进入数据交互流程。
3.服务端循环接收客户端发送的数据,直到客户端发送结束信号或超时。
4.服务端对数据进行处理,并返回响应。
5.数据交互完成后,服务端和客户端关闭连接。
6.服务端回到步骤1,继续监听其他客户端连接。
在上一篇文章里我们提到了,客户端发送了数据了之后,不管服务端还是客户端都close退出了,也就是说只能发送一次数据,这显然不符合实际的用途。那么该如何更改程序呢?
1、持续发送
要想实现持续发送,聪明的你可能想到了用循环,思路完全正确,但是循环多少次呢?实际的使用情况服务端一直都要运行,除非系统崩掉了,而客户端和服务端的长连接也要一直连着,除非客户端自己关闭了连接。所以我们的思路是双端都无限循环!所以可以用一个while(1)来循环,那么应该在哪里开始循环,这个要看自己具体的要求,如果要求三次握手只一次,随后发送数据的话进行持续发送。
本文共计2075个文字,预计阅读时间需要9分钟。
在上一篇文章中,我们提到了客户端发送数据后,无论服务端还是客户端都退出,且只能发送一次数据,这显然不符合实际使用需求。那么,应该如何改进程序呢?
1. 持续监听客户端连接:服务端程序应持续监听客户端的连接请求,一旦有客户端连接,就进入数据交互流程。
2. 循环接收数据:在数据交互流程中,服务端应循环接收客户端发送的数据,直到客户端发送结束信号或超时。
3. 数据处理与响应:服务端对客户端发送的数据进行处理,并返回相应的响应。
4. 关闭连接:在数据交互完成后,服务端和客户端应关闭连接,以便其他客户端可以连接。
改进后的程序流程如下:
1. 服务端启动,持续监听客户端连接。
2.客户端连接成功后,进入数据交互流程。
3.服务端循环接收客户端发送的数据,直到客户端发送结束信号或超时。
4.服务端对数据进行处理,并返回响应。
5.数据交互完成后,服务端和客户端关闭连接。
6.服务端回到步骤1,继续监听其他客户端连接。
在上一篇文章里我们提到了,客户端发送了数据了之后,不管服务端还是客户端都close退出了,也就是说只能发送一次数据,这显然不符合实际的用途。那么该如何更改程序呢?
1、持续发送
要想实现持续发送,聪明的你可能想到了用循环,思路完全正确,但是循环多少次呢?实际的使用情况服务端一直都要运行,除非系统崩掉了,而客户端和服务端的长连接也要一直连着,除非客户端自己关闭了连接。所以我们的思路是双端都无限循环!所以可以用一个while(1)来循环,那么应该在哪里开始循环,这个要看自己具体的要求,如果要求三次握手只一次,随后发送数据的话进行持续发送。

