[C초보] UDP 소켓프로그래밍
즐겨찾기
질문 제목 :
UDP 소켓 프로그래밍 질문
UDP소켓 Client에서전송을 한 Server의 IP와 Port를 표출
질문 내용 :
/************ 소스를 먼저 첨부 합니다 Source 시작 *******************/
#include stdio.h
#include stdlib.h
#include string.h
#include sys/socket.h
#include sys/types.h
#include netinet/in.h
#include arpa/inet.h
#include unistd.h
#define MAXLINE 511
int main(int argc , char* argv[])
{
struct sockaddr_in servaddr;
int s , nbyte , addrlen = sizeof(servaddr);
char buf[MAXLINE+1];
if(argc != 3 )
{
printf(usage:ip, port);
exit(0);
}
if((s = socket(PF_INET, SOCK_DGRAM, 0)) 0)
{
perror(socket fail);
exit(0);
}
bzero((char*)&servaddr ,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = inet_addr(argv[1]);
servaddr.sin_port = htons(atoi(argv[2]));
while(1){
printf(while 문 진입\n);
if(fgets(buf,MAXLINE,stdin) == NULL)
{
printf(fget error);
exit(0);
}
printf(Fget Complete\n);
if(sendto(s,buf,strlen(buf),0,(struct sockaddr*)&servaddr, addrlen) 0)
{
perror(send error);
exit(0);
}
printf(Send Complete\n);
if((nbyte = recvfrom(s,buf,MAXLINE,0,(struct sockaddr*)&servaddr , &addrlen)) 0)
{
perror(recv error);
exit(0);
}
printf(recv Complete\n);
buf[nbyte] = 0;
printf(IP : %d, Port : %d, 전송된 메시지 : %s\n,( ),atoi(argv[2]),buf);
}
close(s);
return 0;
}/************ 소스를 먼저 첨부 합니다 Source끝 *******************/
C를 공부한지 얼마안되는 초보 입니다
과제하다가 막히는 부분이 있어서 질문 해보아요..
위쪽에 파란 색 라인 보시면 Client에서 Server로 전송한내용(buf)과
IP, Port를 표시해야 합니다. Port와, 내용은 표시가 잘 되는거 같은데..
IP를 표시할 방법을 잘 모르겠습니다.. 많이 도와주세요..
-
이퓨리한은지
질문게시판에는 덧글을 포함해서 반드시 돋움체 또는 굴림체를 사용해야 됩니다.
이 폰트로 계속 덧글을 달면 탈퇴가 됩니다.
폰트는 자신의 블로그에서 설정할 수 있습니다. -
남자
이런~! 감사합니다~ ㅠ ㅠ 엉뚱한 곳에서 해매다가.. 가장 기초적인 부분을 놓쳤네요..
더 열심히 공부하도록 하겠습니다 ㅠㅠ -
가림새
상대방의 ip는 argv[1]로 입력받으셨습니다.
%s로 argv[1]하시면 되겠네요.?