#include<stdio.h>
#include<string.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<stdlib.h>
void error_handling(char* message);
int main(int argc, char** argv){
int serv_sock;
struct sockaddr_in serv_addr;
char message[100];
if(argc != 3){
printf("Usage : %s <addr> <port>\n", argv[0]);
exit(1);
}
memset(&message, 0, sizeof(message));
serv_sock = socket(PF_INET, SOCK_STREAM, 0);
if(serv_sock == -1)
error_handling("socket() error!");
memset(&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr(argv[1]);
serv_addr.sin_port = htons(atoi(argv[2]));
if( connect(serv_sock, (struct sockaddr*) &serv_addr, sizeof(serv_addr)) == -1)
error_handling("connect() error!");
read(serv_sock, message, sizeof(message)-1);
printf("message : %s\n", message);
close(serv_sock);
return 0;
}
void error_handling(char* message){
fputs(message, stderr);
fputc('\n', stderr);
exit(1);
}
현재 리눅스기반 소켓 프로그래밍을 공부중입니다.
근데 제 짤막한 지식으로는 socket()이라던지 connect()라던지 하는 함수가 sys/socket.h에 정의되어 있기 때문에 sys/socket.h와 sys/types.h를 include해줘야 한다고 알고있는데, 모르고 그 둘의 include를 빼먹었음에도 불구하고 컴파일 에러가 안나서 질문드립니다.
이거 왜 에러가 안나는건가요?;;
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.