gpt4 book ai didi

c++ - 发送和接收 int C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:50 26 4
gpt4 key购买 nike

如何向服务器发送 4 字节 int 并在服务器端将此缓冲区转换为 int。

客户端:

void send_my_id()
{
int my_id = 1233;
char data_to_send[4];
// how to convert my_id to data_send?
send(sock, (const char*)data_to_send, 4, 0);
}

服务器端:

void receive_id()
{
int client_id;
char buffer[4];
recv(client_sock, buffer, 4, 0);
// how to conver buffer to client_id? it must be 1233;
}

最佳答案

您可以简单地将int 的地址转换为char* 并将其传递给send/recv .请注意使用 htonlntohl 来处理字节顺序。

void send_my_id()
{
int my_id = 1233;
int my_net_id = htonl(my_id);
send(sock, (const char*)&my_net_id, 4, 0);
}

void receive_id()
{
int my_net_id;
int client_id;
recv(client_sock, &my_net_id, 4, 0);
client_id = ntohl(my_net_id);
}

注意:我保留了缺少结果检查的部分。实际上,您需要额外的代码来确保 send 和 recv 都传输所有需要的字节。

关于c++ - 发送和接收 int C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10806754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com