WinSock 发送函数不发送

WinSock Send Function not sending

所以我正在用 C++ 编写一个 IRC 机器人,并且我编写了自己的发送函数

    int Send(char* MessageToSend) {
    initResult = send(bobSocket, MessageToSend, (int)strlen(MessageToSend), 0);
    if (initResult == SOCKET_ERROR) {
        printf("send failed: %d\n", WSAGetLastError());
        closesocket(bobSocket);
        WSACleanup();
        return 1;
    }
}

每当我在我的 sendmessage 函数中使用它时(循环检查消息然后运行所有要发送的输入)有点像这样

while(1 > 0) {
 string b;
 cin >> b;
 char* INPUT = const_cast<char*>(b.c_str());
 Send(b);
}

但是当我将 PRIVMSG ##channel :test 放入控制台时,我在另一个客户端上看不到任何东西,所以,有人可以帮忙吗?我对 Whosebug 和 C++ 还很陌生,所以非常感谢任何反馈。

如果 send() returns 7, 9, 7 for PRIVMSG ##channel :hello,这意味着你在三个不同的发送中发送那一行,并且你正在丢失内部空间,并发送尾随的换行符。所以问题可能是您错误地解析了输入。您实际发送的是:

PRIVMSG (7 bytes)
##channel (9 bytes)
:hello\n (7 bytes)

并再次注意您丢失了内部空间。

我相信您应该从控制台读取行,而不是文字。

请注意,我从 'if' 开始回答这个问题,因为您对评论的回复还很不清楚。