当前位置: 技术问答>linux和unix
socket传送的内容过长时,怎么处理?我就80分了!
来源: 互联网 发布时间:2015-05-05
本文导语: socket传送的内容过长时会分次发,而我又必须全部收完后才能操作?请问怎么处理?谢谢 | 同意楼上的。 可以在包头上加 1.是否有后续包的标志 或者 2.是否为结束包的标志 或者 3.后续包的序...
socket传送的内容过长时会分次发,而我又必须全部收完后才能操作?请问怎么处理?谢谢
|
同意楼上的。
可以在包头上加
1.是否有后续包的标志
或者
2.是否为结束包的标志
或者
3.后续包的序号
或者
4.总包数
等等,总之是你可以判断出来是否多包的信息.
可以在包头上加
1.是否有后续包的标志
或者
2.是否为结束包的标志
或者
3.后续包的序号
或者
4.总包数
等等,总之是你可以判断出来是否多包的信息.
|
用下面的代码试试
ssize_t /* Write "n" bytes to a descriptor. */
writen(int fd, const void *vptr, size_t n)
{
size_t nleft;
ssize_t nwritten;
const char *ptr;
ptr = vptr;
nleft = n;
while (nleft > 0) {
if ( (nwritten = write(fd, ptr, nleft))
ssize_t /* Write "n" bytes to a descriptor. */
writen(int fd, const void *vptr, size_t n)
{
size_t nleft;
ssize_t nwritten;
const char *ptr;
ptr = vptr;
nleft = n;
while (nleft > 0) {
if ( (nwritten = write(fd, ptr, nleft))