gpt4 book ai didi

C++ 连接函数错误 - 参数无效

转载 作者:行者123 更新时间:2023-11-30 04:25:59 24 4
gpt4 key购买 nike

我正在尝试制作一个简单的套接字客户端(使用 debian 6 和 g++ 编译器),当我调用“connect”函数时,它返回错误代码 22 - 参数无效。请告诉我,我做错了什么。

我已经阅读了这个函数的手册页,它说 3 个参数必须如下所示:int、struct sockaddr* 和 socklen_t。

我的代码是:

  int                   serverPort;
u_long serverHost;
struct sockaddr_in serverAddress;
socklen_t serverAddressLength;
int clientSocket;

serverPort = 44444;
serverHost = inet_addr ( "88.198.237.65" );
serverAddress.sin_family = AF_INET;
serverAddress.sin_port = htons ( serverPort );
serverAddress.sin_addr.s_addr = htons ( serverHost );
serverAddressLength = sizeof ( serverAddress );

clientSocket = socket ( AF_INET , SOCK_STREAM , 0 );

connect ( clientSocket , (sockaddr*)&serverAddress , serverAddressLength )

最佳答案

  serverAddress.sin_addr.s_addr = htons ( serverHost );

IPv4 地址是长地址而不是短地址,所以 htons 就可以了。无论如何,数据已经是网络字节顺序,因此不需要转换。

The inet_addr() function converts the Internet host address cp from IPv4 numbers-and-dots notation into binary data in network byte order.

还有:

 char                  serverHost;

它应该如何放入 char 中?

关于C++ 连接函数错误 - 参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11797365/

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