私はサーバ/クライアントアプリケーションを作ろうとしており、QTでクライアント用のGUIインタフェースを設計しようとしています。今、私はライブラリを使ってソケットを作ることができました。しかし、Qt Creatorにコードを書くと、ライブラリをインクルードしていてもsockaddr_inは定義されていませんでした(g ++でlinuxのコードをコンパイルするとうまくいきます)。Qt Creator未定義のソケット - Linux
これは、ソケットを宣言する方法です。sockaddr_in server;
EDIT:QT Creatorでg ++コンパイラを使用していない可能性がありますか?それが事実かもしれませんが、どうすれば追加できますか?私は申し訳ありませんが、私は自分のアプリケーションを起動し、「スタート」ボタンを使用しています一般的な
にQTやプログラミングに非常に新しいですし、これは内部のコードです:
void MainWindow::on_StartButton_clicked()
{
int port;
port=portiuse;
int clientsd;
sockaddr_in server;
if ((clientsd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("[client]Error\n");
return errno;
}
bzero (&server, sizeof (server));
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr("127.0.0.1");
server.sin_port = htons (port);
if((connect(clientsd, (struct sockaddr *) &server, sizeof (struct sockaddr))) == -1)
{
perror("[client]Error()\n");
return errno;
}
}
そして、これらは私が得るエラーです:
エラー: 'sockaddr_in'はこのスコープで宣言されていません sockaddr_in server; ^
エラー: 'server'はこのスコープ内で宣言されていません。 bzero(&サーバー、sizeof(サーバー)); ^
エラー:このスコープ内で 'inet_addr'が宣言されていません。 server.sin_addr.s_addr = inet_addr(ip); ^
問題コードの正確なコンパイル/リンクコマンドとエラーメッセージを投稿する必要があります。それらがなければ、あなたが間違っていることを言うことは非常に難しいです。 –
これは、Linux以外のプラットフォームでこの問題が発生したことを意味しますか?もしそうなら、どのプラットフォームが今あなたに悲しみを与えていますか?それはまだg ++コンパイラですか? –