关于SOCKET接收不到数据
发送端:
结构体
typedef struct head_packet
{
char type[20]; //类型
int length; //长度
char aque[20]; //序列号
} ST_HEAD_PACKET;
发送数据:
strncpy(head_package->type , "log" , sizeof("log"));
head_package->length = strlen(head_package->type);
strncpy(head_package->aque , "log" , sizeof("log"));
writen(sd , head_package, sizeof(struct head_packet));
函数:
ssize_t writen(int fd, const void *ptr, size_t n)
{
size_t nleft;
ssize_t nwritten;
nleft = n;
while (nleft > 0) {
if ((nwritten = write(fd, ptr, nleft)) < 0) {
if (nleft == n)
return(-1); /* error, return -1 */
else
break; /* error, return amount written so far */
} else if (nwritten == 0) {
break;
}
nleft -= nwritten;
ptr += nwritten;
}
return(n - nleft); /* return >= 0 */
}
接收端:
head_package = (ST_HEAD_PACKET *)malloc(sizeof(struct head_packet));
memset(head_package , 0 , sizeof(struct head_packet));
readn(sd , head_package , sizeof(head_package));
printf("%s\n" , head_package->type);
printf("%s\n" , head_package->aque);
问题:
接收端只能收到head_package->type 不能接收到head_package->aque