与 irc 服务器的连接阶段

Posted

技术标签:

【中文标题】与 irc 服务器的连接阶段【英文标题】:stapes of connection with irc server 【发布时间】:2015-11-27 09:22:49 【问题描述】:

我开发了一个 irc 服务器程序。我的问题是我可以进行连接的前半部分,也就是说我在服务器中收到了客户端发送的昵称和用户,但是当我想为客户端发送消息或任何不起作用的响应时

if ((client_fd = accept(socket_fd, (struct sockaddr *)&dest, &size))==-1) 
            //fprintf(stderr,"Accept Failure\n");
            perror("accept");
            exit(1);
        
        printf("Server got connection from client %s\n", inet_ntoa(dest.sin_addr));

        buff="RPL_WELCOME";
        send(client_fd,buff, strlen(buff),0);

【问题讨论】:

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建最小、完整和可验证的示例。 RPL_WELCOME 不是实际命令。当标准说 RPL_WELCOME 时,他们的意思是查找名为 RPL_WELCOME 的代码,然后发送该代码(它是一个 3 位数字)。 buff="001";发送(client_fd,buff,strlen(buff),0);我这样做了,但它不起作用 【参考方案1】:

uint32_t some_long =001;

uint32_t network_byte_order;

// convert and send
network_byte_order = htonl(some_long);
send(client_fd, &network_byte_order, sizeof(uint32_t), 0);

我修改了我的函数发送这样并且客户端没有响应:/

【讨论】:

以上是关于与 irc 服务器的连接阶段的主要内容,如果未能解决你的问题,请参考以下文章

连接到 IRC 服务器的问题

iOS 中的 IRC /TOPIC 命令修剪问题

Linux终端 连接 freenode IRC

Linux终端 连接 freenode IRC

如何在 IRC 服务器中发送消息聊天?

IRC