2013-06-12 98 views
0

如何通过套接字发送长文件?和如何接收它?用套接字发送文件大小

服务器:

   long size; 

       f = fopen("file.txt","r");; 

       fseek(f,0,SEEK_END); 

       size = ftell(f); 

       rewind(f); 

       printf("Size: %ld Bytes\n",size); 

       /* send "size" with send method */ 

       send(socket,???,???,0); 

客户:

   long size; 

       recv(socket,???,???,0); 

感谢所有的帮助。

回答

1

假设在连接的双方相同的字节顺序和sizeof(long)

send(socket, &size, sizeof size, 0); 

和:

recv(socket, &size, sizeof size, 0); 

这些假设可能是不正确的,虽然,所以要小心。

+0

谢谢!我可以在服务器上使用htons(大小)和客户端上的大小(大小)以获得更高的安全性吗? – user2467899

+1

那么,你应该使用'htonl'和'ntohl'(或者可能是一个64位版本),因为它们是“长”而不是“短”变量,但是,是的,这是主意。 –

+0

不好意思!对!非常感谢你! – user2467899