Client/Server 프로그램에 대해 질문 드립니다.
퍼리
Client 와 Server 가 통신할때,
예를들어, 채팅 프로그램이라 가정할때,
Server 는 C1 의 접속을 받아들이고, 현재접속중인 C2 와 C3 에게 C1 이 접속했을을알리고,
C1 은 현재 C2, C3 가 접속중 이란 정보를 서버로 부터 전송 받는다
이런경우, 서버가 클라이언트에게 정보를 넘겨 줄때 어떤식으로 넘겨주나요?
저같은 경우에는 header + message 필요시
이런식으로 넘겨주는데, header 라는것이, 단순히 문자열 스트링이나, byte 배열등으로 미리 interface 를 만들어서
서버와 클라이언트와 통신시 서로 맞춰가며 짜거든요,
, 예를들어 header 가 ##%%@@ 이고, 접속한 아이디가 록수2 일때,
서버에서 ##%%@@록수2 이런식으로 넘겨주고는, 클라언트에서 헤더만큼의 길이를 읽어서 정보구분후,
이벤트 처리를 해줍니다.
하지만 이와같은경우 실제로 클라이언트가 메세지 입력시 ##%%@@ 와같은 메세지를 입력하수도 있는것이기 때문에,,
이런 방법은 정말 안좋은 방법 같거든요...
첨부된 파일은제가 이런식으로 한번 짜본소스인데요,
*** 첨부파일의 소스실행시, 파일전송할때 수신쪽과 송신쪽의 전송속도를 대충 야매(ㅡㅡ) 로 구하기는 했으나..
이게 정확한 수치가 아닌데... 혹시, 전송속도는 어떻게 구할수 있나요??
-
훌림목
아 그렇게 되는군요,,ㅡㅡ;
어차피 메세지에 헤더가 붙여서 가니깐.. 문제가 없겠군요.
아 무식하다..ㅡㅜ
공부좀 더 하고 제대로 만들어 봐야 할텐데..
찬님 답변 감사합니다 -
Regretting
보통은.. 제일 앞 1-2바이트로 전송할 메세지 크기를...
그 다음바이트로. 전송된 명령어 종류를 .
그 다음 바이트들은 명령어 종류에 따른 실제 데이터를 묶어서 보내는 방식을 합니다.
걍 아주 일반적인 경우에는 그렇다는거지요~ ㅎ -
찬들
클라이언트가 메세지를 ##%%@@와 같이 입력한다고 해도 -_-
결국 헤더를 포함하면.. ##%%@@##%%@@ 가 넘어 가지 않나요?
그럼 -_- 앞에 ##%%@@만 헤더로 보고 -_- 그 이후의 내용은.. 메세지로 보면 될것 같은데 -_-; ㅎ;