gpt4 book ai didi

c - 为什么我对 connect() 的调用失败了?

转载 作者:行者123 更新时间:2023-11-30 17:42:39 25 4
gpt4 key购买 nike

在 C 中,我尝试使用以下函数连接到服务器:

int clientConnect() {

//1. Set up connection address and port
char *ipAddress = SMSA_DEFAULT_IP;
int port = SMSA_DEFAULT_PORT;

//1a. Set up a sockaddr_in struct as described in lecture
struct sockaddr_in caddr;
caddr.sin_family = AF_INET;
caddr.sin_addr.s_addr = htonl(SMSA_DEFAULT_IP);
caddr.sin_port = htons( port );

//2. Create a socket
server_socket = socket(PF_INET, SOCK_STREAM, 0);

if(server_socket == -1)
{
logMessage(1, "There was an error creating a socket in clientConnect()");
return -1;
}

//3. Connect
if( connect(server_socket, (const struct sockaddr *)&caddr, sizeof(struct sockaddr) ) == -1)
{
logMessage(1, "There was an error connecting in clientConnect()");\
return -1;
}

logMessage(2, "The connection was made!");
return 0;}

调用此函数时,我在日志中收到一条消息clientConnect() 中连接时出错。这是我第一次用 C 语言进行网络编程,所以我怀疑我错过了一些东西。

最佳答案

connect 的最后一个参数应该是 sizeof caddr:

connect(server_socket, (const struct sockaddr *)&caddr, sizeof caddr);

关于c - 为什么我对 connect() 的调用失败了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20459591/

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