BACKRUSH  유닉스명령  다음  자료실  Ascii Table   원격접속  달력,시간   프로세스  
지하철노선   RFC문서   SUN FAQ   SUN FAQ1   C메뉴얼   PHP메뉴얼   너구리   아스키월드 아이피서치

글쓴이: bind bind 테스트 조회수: 10310


#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#define MSG "Test Message"

int main() {
int sd1, sd2 ; /* 소켓번호 */
struct sockaddr_in ServerAddr, ClientAddr ; /* 소켓주소 구조체 */
u_short rtn1, rtn2; /* 포트번호 */
int addr_len ;

/* 소켓주소 구조체 초기화 */
ServerAddr.sin_family = ClientAddr.sin_family = PF_INET ;
ServerAddr.sin_addr.s_addr = ClientAddr.sin_addr.s_addr = htonl(INADDR_ANY) ;
ServerAddr.sin_port = htons(7);
ClientAddr.sin_port = htons(0) ; /* 시스템이 포트번호 배정 */

sd1=socket(AF_INET, SOCK_STREAM, 0);
sd2=socket(AF_INET, SOCK_DGRAM, 0);

addr_len=sizeof(ClientAddr);
if(bind(sd1, (struct sockaddr*)&ClientAddr, addr_len)) printf("bind error!\n");
if(connect(sd1, (struct sockaddr*)&ServerAddr, sizeof(ServerAddr))<0) {
printf("Error : Connect failed!!!\n") ;
exit(1) ;
}
getsockname(sd1, (struct sockaddr*)&ClientAddr, &addr_len) ;
rtn1 = ClientAddr.sin_port ;

sendto(sd2, MSG, strlen(MSG), 0, (struct sockaddr*)&ServerAddr, sizeof(ServerAddr)) ;
getsockname(sd2, (struct sockaddr*)&ClientAddr, &addr_len) ;
rtn2 = ClientAddr.sin_port ;

printf("stream socket's bind return = %d\n", rtn1 ) ;
printf("datagram socket's bind return = %d\n", rtn2) ;

close(sd1) ;
close(sd2) ;
}

관련글 : 1 건 글쓴시간 : 2002/11/14 17:02 from 218.154.16.35

 

제 목

조회

날짜

글쓴이

bind 테스트

10310

2002.01.19

bind


  nbtstat 를 유닉스에서 목록보기 새글 쓰기 지우기 응답글 쓰기 글 수정 시스템콜사용연습  
BACKRUSH  유닉스명령  다음  자료실  Ascii Table   원격접속  달력,시간   프로세스  
지하철노선   RFC문서   SUN FAQ   SUN FAQ1   C메뉴얼   PHP메뉴얼   너구리   아스키월드 아이피서치