gpt4 book ai didi

tcp - 树莓派 : endianness CROSS COMPILE

转载 作者:可可西里 更新时间:2023-11-01 02:54:37 26 4
gpt4 key购买 nike

我使用 buildroot 交叉工具链从我的计算机 (Ubuntu X86) 编译 Raspberry 应用程序。我正在开发一个允许在 5003 (0x138B) TCP 端口号上建立连接的 TCP 服务器。当我启动服务器时,这是正确的,但我的服务器等待 35603 (0x8B13) TCP 端口号上的连接(使用 netstat -a 检查)。

这似乎是一个字节序问题,但我不知道如何解决。

你能帮帮我吗?

谢谢。

最佳答案

感谢您的回答。

我同意这很奇怪。我不认为代码是问题所在。它在其他平台上运行良好。

请在下面找到代码:

/*Create the server */
int CreateServeur (unsigned short port, int *sock_srv, int nb_connect)
{
int l_ret = -1;
struct sockaddr_in l_srv_addr;

/* address initialisation */
printf("creation serveur port %i\n", port);
memset ((char*) &l_srv_addr,0, sizeof (struct sockaddr_in));
l_srv_addr.sin_family = PF_INET;
l_srv_addr.sin_port = port;
l_srv_addr.sin_addr.s_addr = htonl (INADDR_ANY);

/* main socket creation */
if ((*sock_srv = socket (PF_INET, SOCK_STREAM, 0)) <= 0)
{
printf("server socket creation error");
}
else
{
if (bind (*sock_srv, (struct sockaddr *) &l_srv_addr, sizeof (struct sockaddr_in)) == -1)
{
close (*sock_srv);
printf("bind socket error");
}
else
{
if (listen (*sock_srv, nb_connect) == ERROR)
{
close (*sock_srv);
printf("listen socket error");
}
else
{
l_ret = 0;
}
}
}

return (l_ret);
}

此函数不返回任何错误。第一个日志 (printf("creation serveur port %i\n", port);) 显示正确的端口 (5003) 但服务器在端口 35603 (netstat -a) 上等待连接。

如果不是字节序问题,我不明白。

关于tcp - 树莓派 : endianness CROSS COMPILE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928388/

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