2016-09-17 7 views
-2

を送信する、と私はWinSockのは、そのように私は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 ##チャンネル置くとき:コンソールにテストを、私は他のクライアントに何も表示されませんので、ヘルプのような誰もができますか?私はかなり新しいstackoverflowとC + +、ので、任意のフィードバックをいただければ幸いです。

+0

これで、送信に失敗したメッセージが表示されますか?か否か? bobSocketは正しく接続された有効なソケットですか? –

+0

@JasonCいいえ失敗したメッセージは表示されません.bobSocketは有効で正しく接続されたソケットです.IRCレジスタに接続して、必要なチャネルに参加しますが、入力はIRCサーバに送信されません。 – newuser9282928292

+0

あなたはそれをサーバーに送信していませんか?それはちょうどいいフォーマットでいいのでしょうか?サーバーに接続して会議室に参加している場合、間違ってフォーマットされたコマンドを送信している可能性があります。 –

答えて

1

PRIVMSG ##channel :helloの場合、send()が7、9、7を返した場合、それは3つの異なる送信でその1行を送信し、内部スペースを失い、末尾の改行を送信していることを意味します。だから問題はあなたが誤って入力を解析している可能性があります。実際に送信している内容は次のとおりです。

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

また、内部スペースが失われていることにもご注意ください。

私はあなたが言葉ではなく、コンソールから行を読むべきだと思います。

あなたのコメントに対する回答がはっきりしていないので、私はこの回答を 'if'で始めることに注意してください。

+0

不明瞭なことを申し訳なく思っています。私はかなり新しく、記述が非常に悪いですが、char_cast – newuser9282928292

関連する問題