从网络字节顺序获取文件大小 [英] Getting File size from network byte order
问题描述
以下代码显示了如何将数据包从客户端发送到服务器的
套接字。文件大小(fileSizeTemp)在发送到服务器之前转换为网络字节顺序
。
*((unsigned short *)& dataBuff [6 + filenameLen + 1])= htons((无符号
短)(fileSizeTemp>> 16));
*((unsigned short *)& dataBuff [ 6 + filenameLen + 3])= htons((无符号
短)((fileSizeTemp<< 16)>> 16));
if(send(clientSock,...,...)== SOCKET_ERROR)
{
// ...
}
我的问题是,如何在服务器上获取文件的大小(来自收到的数据包)
?
谢谢
Manu。
Manu写道:
下面的代码显示了如何将数据包从客户端发送到服务器的插槽。文件大小(fileSizeTemp)在发送到服务器之前转换为网络字节
顺序。
*((unsigned short *)& dataBuff [6 + filenameLen + 1])= htons ((unsigned
short)(fileSizeTemp>> 16));
*((unsigned short *)& dataBuff [6 + filenameLen + 3])= htons((unsigned
) ()((fileSizeTemp<< 16)>> 16));
您可以使用htonl更简单地完成:
*((unsigned long *)& dataBuff [6 + filenameLen + 1])=
htonl(fileSizeTemp)
if(send(clientSock,...,...)== SOCKET_ERROR)
//
// ...
}
我的问题是,如何在服务器上获取文件的大小(来自收到的
包)?
ntohl。
Arnaud
MVP - VC
Manu写道:
下面的代码显示了如何将数据包从客户端发送到服务器的插槽。文件大小(fileSizeTemp)在发送到服务器之前转换为网络字节
顺序。
*((unsigned short *)& dataBuff [6 + filenameLen + 1])= htons ((unsigned
short)(fileSizeTemp>> 16));
*((unsigned short *)& dataBuff [6 + filenameLen + 3])= htons((unsigned
) ()((fileSizeTemp<< 16)>> 16));
您可以使用htonl更简单地完成:
*((unsigned long *)& dataBuff [6 + filenameLen + 1])=
htonl(fileSizeTemp)
if(send(clientSock,...,...)== SOCKET_ERROR)
//
// ...
}
我的问题是,如何在服务器上获取文件的大小(来自收到的
包)?
ntohl。
Arnaud
MVP - VC
但有4个数据的二进制。如何从4个字节的数据中提供netlong参数到ntohl
?
Manu。
< ;广告****** @ club-internet.fr>在消息中写道
news:11 ********************** @ g14g2000cwa.googlegr oups.com ...
Manu写道:
以下代码显示了如何从客户端向服务器发送数据包
插座。在发送到服务器之前,文件大小(fileSizeTemp)被转换为网络字节
命令。
*((unsigned short *)& ; dataBuff [6 + filenameLen + 1])= htons((unsigned
short)(fileSizeTemp>> 16));
*(( unsigned short *)& dataBuff [6 + filenameLen + 3])= htons((unsigned
short)((fileSizeTemp<< 16)>> ; 16));
你可以用htonl更简单地做到这一点:
*((unsigned long *)& dataBuff [6 + filenameLen + 1])=
htonl(fileSizeTemp)
if(send(clientSock,...,...)== SOCKET_ERROR)
{
// ...
}
我的问题是,如何获取文件的大小(来自收到的
包)在服务器上?
ntohl。
Arnaud
MVP - VC
Hi,
Following code shows how a packet is sent from a client to a server''s
socket. The file size (fileSizeTemp) is converted to network byte order
before sending to the server.
*((unsigned short *)&dataBuff[6 + filenameLen + 1]) = htons((unsigned
short)(fileSizeTemp >> 16));
*((unsigned short *)&dataBuff[6 + filenameLen + 3]) = htons((unsigned
short)((fileSizeTemp << 16) >> 16));
if (send(clientSock, ..., ...) == SOCKET_ERROR)
{
//...
}
My question is, how to get the size of the file (from the received packet)
on the server?
Thanks
Manu.
Manu wrote:Hi,
Following code shows how a packet is sent from a client to a server''s
socket. The file size (fileSizeTemp) is converted to network byte order before sending to the server.
*((unsigned short *)&dataBuff[6 + filenameLen + 1]) = htons((unsigned short)(fileSizeTemp >> 16));
*((unsigned short *)&dataBuff[6 + filenameLen + 3]) = htons((unsigned short)((fileSizeTemp << 16) >> 16));
You could do it more simply with htonl :
*((unsigned long *)&dataBuff[6 + filenameLen + 1]) =
htonl(fileSizeTemp)
if (send(clientSock, ..., ...) == SOCKET_ERROR)
{
//...
}
My question is, how to get the size of the file (from the received packet) on the server?
ntohl.
Arnaud
MVP - VC
Manu wrote:Hi,
Following code shows how a packet is sent from a client to a server''s
socket. The file size (fileSizeTemp) is converted to network byte order before sending to the server.
*((unsigned short *)&dataBuff[6 + filenameLen + 1]) = htons((unsigned short)(fileSizeTemp >> 16));
*((unsigned short *)&dataBuff[6 + filenameLen + 3]) = htons((unsigned short)((fileSizeTemp << 16) >> 16));
You could do it more simply with htonl :
*((unsigned long *)&dataBuff[6 + filenameLen + 1]) =
htonl(fileSizeTemp)
if (send(clientSock, ..., ...) == SOCKET_ERROR)
{
//...
}
My question is, how to get the size of the file (from the received packet) on the server?
ntohl.
Arnaud
MVP - VC
But there are 4 byes of data. How do I supply the netlong parameter to ntohl
from 4 bytes of data?
Manu.
<ad******@club-internet.fr> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
Manu wrote:Hi,
Following code shows how a packet is sent from a client to a server''s
socket. The file size (fileSizeTemp) is converted to network byte
orderbefore sending to the server.
*((unsigned short *)&dataBuff[6 + filenameLen + 1]) = htons((unsigned
short)(fileSizeTemp >> 16));
*((unsigned short *)&dataBuff[6 + filenameLen + 3]) = htons((unsigned
short)((fileSizeTemp << 16) >> 16));
You could do it more simply with htonl :
*((unsigned long *)&dataBuff[6 + filenameLen + 1]) =
htonl(fileSizeTemp)
if (send(clientSock, ..., ...) == SOCKET_ERROR)
{
//...
}
My question is, how to get the size of the file (from the received
packet)on the server?
ntohl.
Arnaud
MVP - VC
这篇关于从网络字节顺序获取文件大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!