TCP를 사용하여 POP3 메일 서버에 연결하려고 시도했지만 read()
메시지 바로 다음에 connect()
메시지가 표시되면 콘솔이 중지됩니다. ADDR
소켓에서 메시지를 읽는 중 응답이 없습니다.
int sd;
struct sockaddr_in server;
if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror ("Error: socket()\n");
return errno;
}
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr(ADDR);
server.sin_port = htons(PORT);
if (connect(sd, (struct sockaddr *) &server, sizeof(struct sockaddr)) == -1) {
perror("Error: connect()\n");
return errno;
}
char message[100];
read(sd, message, 100); // <== here it hangs
printf ("message: %s\n", message);
close (sd);
는 IP이며 PORT
내가 (내 경우 188.125.69.47과 995 년)에 연결하기 위해 노력하고있어 서버의 포트입니다. 서버가 데이터를 전송하지 않기 때문에,
+OK hello from ....
** POP3s **에 연결 중입니다. ** POP3는 SSL을 통해 POP3입니다. SSL 연결을 먼저 시작해야합니다. 'nc -v 188.125.69.47 995' (아무것도 없다)를'openssl s_client -connect 188.125.69.47 : 995' (* + OK hello ... *)와 비교하십시오. – tomasz