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' 开始回答这个问题,因为您对评论的回复还很不清楚。
所以我正在用 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' 开始回答这个问题,因为您对评论的回复还很不清楚。