게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C# 소켓프로그래밍과 통신 프로토콜 관련해서 질문 드립니다.
게시물ID : programmer_5094짧은주소 복사하기
작성자 : camellia
추천 : 0
조회수 : 6690회
댓글수 : 9개
등록시간 : 2014/08/22 02:21:58
옵션
  • 본인삭제금지
안녕하세요! C# 소켓프로그래밍 관련해서 정말 도움이 절실합니다ㅠㅠ  눈앞이 캄캄해서 생각난 곳이 여기입니다ㅠㅠ

현재, 일단 소켓프로그래밍을 한번도 해본적이 없어서  서버-클라이언트로 이루어진 채팅 프로그램 예제 공부중이구요. 
제가 만들어야 할 프로그램은 서버-클라이언트가 있습니다. 클라이언트에서 패킷메시지를 보내주면 서버에서 응답을 해서 다시 클라이언트로 전송해줘야 합니다. 이때 통신 프로토콜 설계서를 보고  패킷메시지를 날려야 합니다. 

그냥 아예 여기에 대해서 무지합니다. 공부하고자 하니, 어디 도움 받을 곳이 여기 밖에 없습니다ㅠㅠㅠㅠ
통신 프로토콜 설계서에 있는 걸 몇개 가져오면 아래와 같습니다. 

통신 패킷

구분

STX

데이터길이

보내는 ID

받는 ID

데이터종류

데이터

Check Sum

ETX

크기(bytes)

(10 + n)

1

1

2

2

1

n

2

1

0x02

n+5

{보내는 ID

받는 ID

데이터종류

데이터(n)}

ID

ID

Command (0x10)

Data(0x11)

Error (0x12)

세부명령|추가데이터

데이터길이

부터 데이터까지

2bytes 나눈 후의 합

0x03

데이터 형식은 0x11 되어있습니다. 그다음 페이지에는 Command 정의(0x10)도 있구요. 클라이언트->서버 이렇게 하여 표가 하나 있습니다.  
표에서 하나 언급을 하면요. 

명령어 종류

데이터 영역(6~)

설명

비고

세부 명령어코드

추가 데이터

시간동기화 송신

SET_TIME

0x01

시간 | 시간차

(7+1=8 bytes)

메인 GUI에서 PCU와의 시간 동기화용으로 사용함.

* 시간차 데이터가 0인 경우는 RES_TIME 응답을 받음.

수신 메시지

RES_TIME

패킷) 0x02 0x0D 0xFFFE 0xFFFF 0x10 0x01 0x0102030405060708 0x???? 0x03

이런식으로 되어있습니다.

질문1) STX 등은 인터넷을 찾아서 의미는 아는데,  밑에 있는 숫자는 무엇인가요? 저 숫자 다 더하니깐 10나오고  n 때문에 그래서 10+n인거 같은데 무얼 뜻하는지 설명 해주셨으면 좋겠습니다.

질문2) 패킷 ) 0x02  ~~ 이부분이 STX 데이터길이 이런 순으로 되어있는거 같은데 맞나요?? 이걸 어디에 써먹어야 하나요??

질문3) 이와 관련한 소켓프로그래밍 예시 코딩 있으면 가르쳐 주셨으면 좋겠습니다.ㅠㅠ 도대체 어떻게 코딩을 해야하나요??

이렇게 질문3개로 나눠서 올렸긴 한데,  지금 제 상태를 C로 표현하자면  헤더 선언하고, int main(void) { return 0;} 딱 이것만 쓰고 더이상 어찌 해야할지 모르는 상태입니다....통신 프로토콜 설계서 라는걸 지금 처음 봅니다...주변에서 물어보면 책이나 인터넷 찾아보라고만 합니다....너무 막막합니다ㅠㅠ 도움좀 주셨음 좋겠습니다 ㅠㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호