socket을 이용한 서버/클라이언트간 메세지 전송(리눅스용)
본 자료는 미리보기를 지원하지 않습니다.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

socket을 이용한 서버/클라이언트간 메세지 전송(리눅스용)에 대한 보고서 자료입니다.

목차

1. 문제 정의

2. 문제 분석

3. 디자인(구현 부분)

4. 결과 화면

5. 소스 코드

본문내용

1. 문제 정의

구조체를 사용하여 client에서 데이터를 보내고 server 쪽에서는 받은 데이터에 대해 데이터에 맞는 처리를 하여 response를 하도록 한다.

사용되는 구조체는 다음과 같다.

client가 보내는 메시지 형태
typedef struct
{
int seq_num//sequence number
u_int32_t srcaddr; //보내는 컴퓨터의 IP address
u_int32_t dstaddr; //받는 컴퓨터 IP address
int port; //port number
}request_packet

server가 보내는 메시지 형태
typedef struct
{
int seq_num//sequence number
char name[30] // 이름 필드.
}response_packet

<동작 과정>
1. client가 메시지를 보냈을 경우 server 쪽에서는 name을 입력을 하여(scanf(),fgets(),gets() 등등 사용) client에게 응답한다. server에서는 구조체의 request_packet구조체의 필드들을 출력하도록 해야한다.

2. client에서는 구조체의 response_packet구조체의 필드들을 출력한다.(IP,PORT제외)

분석

client 부분에서

request.dstaddr=inet_addr(SERVERIP);
request.srcaddr=inet_addr(CLIENTIP);
send(client_fd,&request,sizeof(request),0);

와 같이 변환하여 request 구조체의 dstaddr과 srcaddr 멤버에 넣어 server에 보낸다.

server 부분에서는

recv(client_fd, &request, sizeof(request),0);
inaddr1.s_addr=request.srcaddr;
inaddr2.s_addr=request.dstaddr;
printf("Client IP Address : %s\n", inet_ntoa(inaddr1));
printf("Server IP Address : %s\n", inet_ntoa(inaddr2));

와 같이 받은 이진 비트로 변환된 IP 주소를 inaddr1의 멤버 s_addr에 저장했다가
inet_ntoa(inaddr1) 처럼 스트링으로 변환하여 출력한다.



본 자료는 1개의 hwp자료와 소스코드로 구성되었습니다.
  • 가격2,500
  • 페이지수6페이지
  • 등록일2006.11.14
  • 저작시기2006.6
  • 파일형식압축파일(zip)
  • 자료번호#371038
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니