これはLinux上にあります...
コードからこのエラーが発生しています
m-server.cpp: In function âvoid* SocketHandler(void*)â:
m-server.cpp:187: error: invalid conversion from âcharâ to âconst void*â
m-server.cpp:187: error: initializing argument 2 of âssize_t send(int, const void*, size_t, int)â
エラーを出している部分:
char welcomemsg;
cout << "Set the welcome message: ";
cin >> welcomemsg;
//send initial welcome data || msg & src
send(*csock, welcomemsg, sizeof(welcomemsg), 0); //this is line 187
アップデート
cIN の後に msg を使用するのではなく、気が変わったので、以下のコードのように設定したいと思います。
コードからこのエラーが発生しています
m-server.cpp: In function âvoid* SocketHandler(void*)â:
m-server.cpp:181: error: invalid conversion from âconst char*â to âcharâ
m-server.cpp:230: error: jump to label âFINISHâ
m-server.cpp:177: error: from here
m-server.cpp:181: error: crosses initialization of âchar welcomemsgâ
m-server.cpp:230: error: jump to label âFINISHâ
m-server.cpp:161: error: from here
m-server.cpp:181: error: crosses initialization of âchar welcomemsgâ
m-server.cpp:230: error: jump to label âFINISHâ
m-server.cpp:149: error: from here
m-server.cpp:181: error: crosses initialization of âchar welcomemsgâ
エラーを出している部分:
char welcomemsg = "@hello_! bro?"; //can allow symbols?
//send initial welcome data || msg & src
send(*csock, (void *)&welcomemsg, sizeof(welcomemsg), 0);
私はc ++を初めて使用しますが、ここで何が問題になっていますか? 直し方?その背後にある理由は何ですか?
アップデート
これに変更した後、サーバーにエラーはありませんでした。
char *welcomemsg = "hello";
//send initial welcome data || msg & src
send(*csock, welcomemsg, sizeof(welcomemsg), 0);
しかし、ウェルカム メッセージの受信時にクライアントがクラッシュするようになりました。なんで?
これは私がサーバーで使用したコードで、クライアントはウェルカム メッセージを正常に読み取っていました。
send(*csock, "Hello_Word", 10, 0); //was a working code
アップデート
recv() でクライアントがクラッシュすることを確認
しました このコードは、すべての提案とどのような違いがありますか? クライアントがクラッシュすることなく、このコードがうまく機能したのはなぜですか?
send(*csock, "Temporarily Offline_Server will open sockets on Jan. 14, 2013", 61, 0); //was a working code
アップデート
私の recv() コード:
response = "";
resp_leng= BUFFERSIZE;
while (resp_leng == BUFFERSIZE)
{
resp_leng= recv(sock, (char*)&buffer, BUFFERSIZE, 0);
if (resp_leng>0)
response+= string(buffer).substr(0,resp_leng);
}