- 论坛徽章:
- 0
|
制定协议和传文件大小是其中的一部分!
不过关键是检查传输过程中出现的错误和检查send的代码是否正确!
send的时候注意处理最后一个buf的长度,传的长度是实际的长度!
比如buffer size = 512
而你的文件是513字节的,
则第一次send是512字节,第二次是1字节!
- ret = select( recv_sockfd + 1, &fd_recv, NULL, NULL, &tm );
- if ( ( ret == -1 ) && ( errno == EINTR ) ) { /* interrupted by signal */
- continue;
- } else if ( ret == -1 ) { /* real select error */
- break;
- } else if ( ret == 0 ) { /* timeout */
- continue;
- }
复制代码
- ret = select( send_sockfd + 1, NULL, &fd_send, NULL, &tm );
- if ( ( ret == -1 ) && ( errno == EINTR ) ) { /* interrupted by signal */
- continue;
- } else if ( ret == -1 ) { /* real select error */
- break;
- } else if ( ret == 0 ) { /* timeout */
- continue;
- }
复制代码 |
|