서버/클라이언트 응용 프로그램을 만들려고하고 있으며 QT에서 클라이언트 용 GUI 인터페이스를 설계하려고합니다. 이제는 라이브러리를 사용하여 소켓을 만들었습니다. 그러나 Qt Creator에 코드를 작성하면 라이브러리가 포함되어 있어도 sockaddr_in이 정의되지 않았다는 것을 알 수 있습니다. (g ++로 코드를 컴파일하면 문제가 될 수 있습니다.)Qt Creator 정의되지 않은 소켓 - Linux
이렇게 소켓을 선언하는 방법입니다. sockaddr_in server;
EDIT : Q ++ 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; ^
오류 '서버'가이 범위 bzero 선언되지 않은 (& 서버는 sizeof (서버)); ^
오류 : 'inet_addr'이 (가)이 범위에서 선언되지 않았습니다. server.sin_addr.s_addr = inet_addr (ip); ^
[mcve]를 게시해야합니다. 문제 코드와 정확한 컴파일/링크 명령 및 오류 메시지를 게시해야합니다. 그것들이 없으면, 당신이 무엇을 잘못하고 있는지 말하기가 매우 어렵습니다. –
그러면 Linux 이외의 플랫폼에서이 문제가 발생 했습니까? 그렇다면 현재 어떤 플랫폼에서 슬픔을 느끼고 있습니까? 아직도 g ++ 컴파일러입니까? –