一个典型的套接字程序示例是这样的:
while(1){
data = socket.recv()
//do some work
}
因为你不知道包什么时候到达,所以它必须阻塞等待从监听端口获取一些数据,假设程序在收到来自另一端的命令后开始繁重的工作,在工作期间,另一个包到达,但是因为那一刻你正在工作,你没有监听端口,无论你处理工作的速度有多快,你都可能错过包裹。
那么套接字如何处理所有数据而不会丢失?
一个典型的套接字程序示例是这样的:
while(1){
data = socket.recv()
//do some work
}
因为你不知道包什么时候到达,所以它必须阻塞等待从监听端口获取一些数据,假设程序在收到来自另一端的命令后开始繁重的工作,在工作期间,另一个包到达,但是因为那一刻你正在工作,你没有监听端口,无论你处理工作的速度有多快,你都可能错过包裹。
那么套接字如何处理所有数据而不会丢失?