- 论坛徽章:
- 2
|
发送端
if(sendto(sock,xmlbuf,strlen(xmlbuf)+1,0,(struct sockaddr *)&rsock,sizeof(rsock)) == -1){
printf("Sendto failed!\n");
exit(2);
}
bzero(file_name, 1024*1000);
if ( (iRecvLen = tcp_raw_recv(sock, file_name, 1024)) < 0 )
{
fprintf(stderr, "tcp_raw_recv data error!!!\n");
// tcp_close(iSock);
}
printf("aaaa ???");
printf("file_name=%s\n",file_name);
接收端
int tcp_raw_recv(int sock, char *buf, int maxlen)
{
int rch = 0;
int a = 0;
void *bbuf = malloc(maxlen);
while((a = read(sock, bbuf, maxlen)) > 0){
rch = rch + a;
sprintf(buf,"%s%s", buf, bbuf);
if( a < 0 || (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)){break;}
}
return rch;
}
接收端阻塞了,该怎么解决!
|
|