【发布时间】:2014-01-08 21:01:45
【问题描述】:
我通过 TCP/IP 连接不断地将像素值数组从 LabVIEW 发送到 C 程序。 C 程序接收字节流,因此我使用以下代码将字节转换为 uint32 以打印数组中的所有像素值。有谁知道在这种情况下如何将字节顺序切换为 little-endian?:
WSADATA wsa;
SOCKET s , new_socket;
struct sockaddr_in server , client;
int c;
int iResult;
char recvbuf[DEFAULT_BUFLEN];
int recvbuflen = DEFAULT_BUFLEN;
typedef unsigned int uint32_t;
unsigned int i;
size_t len;
uint32_t* p;
uint32_t* endp;
uint32_t value;
p = (uint32_t*)((void*)recvbuf);
do
{
iResult = recv(new_socket, recvbuf, recvbuflen, 0);
len = iResult/sizeof(uint32_t);
for(i=0; i < len; i++)
{
value = p[i];
}
printf("%d\n", value);
}
while ( iResult > 0 );
closesocket(new_socket);
WSACleanup();
return 0;
}
【问题讨论】:
标签: c sockets tcp endianness