질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

소켓프로그래밍에 관해 질문드립니다.

작성자 정보

  • 최성혁 작성
  • 작성일

컨텐츠 정보

본문

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>

void error_handling(char *message);

int main(void)
{
 int serv_sock;
 char *serv_ip="127.0.0.1";
 char *serv_port="9190";
 struct sockaddr_in serv_addr;
 
 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(serv_ip); //htons(INADDR_ANY);
 serv_addr.sin_port=htons(atoi(serv_port));
 
 if( bind(serv_sock, (struct sockaddr*) &serv_addr, sizeof(serv_addr))==-1 ) /* 소켓에 주소를 할당 */
  error_handling("bind() error");
 
 printf("파일 디스크립터 %d 의 소켓에 주소 할당까지 완료! ", serv_sock);
 return 0;
}

void error_handling(char *message)
{
 fputs(message, stderr);
 fputc(' ', stderr);
 exit(1);
}

열혈강의 tcp/ip 소켓프로그래밍 예제인데요

예제랑 똑같이했는데
memset 부분에서 incompatible implicit declaration of built in function 'memset'
라고 워닝이 뜨고
bind 부분에서 passing argument 1 of 'bind 'makes integer pointer without a cast
라고 워닝이뜨네요
gcc 로는 워닝만떠도 컴파일이 안되는건가요 ㅇㅇ;
근데 캐스팅했는데 bind 부분에서 캐스팅이 안되어있다고 나오고.. 책이랑 똑같이했는데 그렇네요
제가 페도라 를 깔아서 쓰고있는데 저처럼 이런경우있었는지 가르쳐주시길 바랍니다 ㅠ.ㅠ


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,070 명
  • 현재 강좌수 :  35,986 개
  • 현재 접속자 :  487 명