c 소켓 struct sockadrr_in 구조체에 아이피넣은거 보는 도중 오류
글쓴이: ehaakdl / 작성시간: 토, 2015/11/28 - 12:24오후
제가 소켓 프로그래밍 하다가 perror에서 connect부분에서 오류가 나서 주소집어 넣은 구조체에 printf문으로 찍어서 잘 들어 갔나 확인하는 도중 오류가 났습니다.
char ServIp[] = "127.0.0.1";
sServAddr.sin_addr.s_addr=inet_addr(ServIp);
ServIp = ntohl(sServAddr.sin_addr.s_addr);
printf("%s %d",ServIp,sServAddr.sin_port);
들어갈때 네트워크 바이트로 바꼇으니 구조체 안에 값을 호스트 바이트로 바꾸기 위해 ntohl을 썻는대
타입 관련 오류가 났습니다.
error: incompatible types when assigning to type ‘char[10]’ from type ‘uint32_t’
ServIp = ntohl(sServAddr.sin_addr.s_addr);
네트워크 바이트 그대로 들어가다가 타입 문제 뜨는거 같습니다만 잘모르겟어서 이렇게 질문 드립니다.
Forums:
인자값을 확인해보시면.
윈도우 MSDN 에서는 이렇습니다.
inet_ntoa() 이거 사용해야 할거 같습니다.
printf("%s", 문자열 변수);
printf("%d", 정수 변수);
char FAR * inet_ntoa ( struct in_addr in );
http://blog.naver.com/sojuchoigo?Redirect=Log&logNo=120021309425
unsigned long inet_addr ( const char FAR * cp );
http://blog.naver.com/sojuchoigo?Redirect=Log&logNo=120021309425
u_long ntohl ( u_long netlong );
http://blog.naver.com/sojuchoigo/120021309549
u_short htons ( u_short hostshort );
http://blog.naver.com/sojuchoigo/120021309381
u_long htonl ( u_long hostlong );
http://blog.naver.com/sojuchoigo/120021309342
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기