노력과 삽질 퇴적물
서버: 소켓 프로그래밍 기초 정리 본문
실제 개발시 요점들.
- 서버<->클라이언트간에 양방향으로 데이터를 빠르게 통신하는데 유용. 스크립트 언어등을 이용한 웹서버의 경우 클라이언트의 요청때만 서버내 데이터 접근하고 속도와 무관할때 유용.
- 모바일의 경우, 커넥션 유지가 되지 않아서 비연결지향으로 구현하게 된다고 한다.
- 3G 통신망은 패킷 사이즈상 소켓 프로그래밍이 낫지만, 개발 측면에서는 웹서버가 유지보수/관리에 유용. 소켓통신을 하고자 하면 node.js가 간편하다고 함. (C로는 구현이 힘들고, JAVA에서는 Nio가 필요함.)
- 대부분 https말고 http로 구현.
소켓통신 종류와 차이점
TCP/IP 소켓 |
UDP 소켓 |
브라우저<->서버간의 일반적인 통신법. 연결지향 | TCP/IP식 패킷검사를 생략. (데이터 신뢰도↘, 속도↑↑) 트래픽에 따라 패킷을 나누는 기능X -> 이부분이 개발자 몫 크기가 작고 실시간에 가까운 통신이 필요할때 적합(스트리밍/전화/스타크래프트 배들넷 등등) |
읽을거리 및 관련 자료. |
TCP/IP 그리고 UDP Socket의 차이와 활용 | Lovelyredsky 려리군의 블로그 :: [TCP/IP 소켓 프로그래밍] 4. TCP 기반 서버/클라이언트1 |
구현 및 예제. 자바서버 & 자바 클라이언트
* 소켓서버(JAVA)와 안드로이드 통신을 이용한 1인용 채팅(?)입니다.
메모. - while문등으로 소켓(Socket)연결과 스트림 입/출력 연결을 루프시키면 클라에서 메시지를 보낼때마다 송/수신 - while문이 1회전 할때마다 소켓(Socket)을 close (ServerSocket은 close하면 안 됨.) - 클라이언트와 서버간에 통신할 포트번호가 같은지 확인 할것. |
MainActivity.java EditText에 입력된 값을 스레드로 전달해서 처리된 결과값으로 화면에 출력 EditText에 입력했던 값은 스레드와의 입력값 전달시 비움. | ClientRun.java {OutputStreamWriter, BufferedWriter, PrintWriter}로 메시지를 클라->서버 {InputStreamReader, BufferedReader}로 서버->클라로 전송된 메시지를 받음. 서버에 전달받은 메시지를 getMsg()로 MainActivity가 접근하게 해둠. |
기타.
읽을거리 및 관련 자료. | ||
안드로이드 기반 | ||
파이썬 기반 | ||
C/C++ 기반 |
기타.
PDF, 기본 학습: 소켓 프로그래밍 기본 (파트 2)
'📂게임개발 note > 클라우드 & 서버' 카테고리의 다른 글
AWS: 다수의 인스턴스&VPC 생성 (0) | 2015.01.31 |
---|---|
AWS: EC2 인스턴스 서버 기본세팅 (0) | 2015.01.22 |
구글 계정 보안과 어플리케이션 비밀번호 (0) | 2013.03.30 |
DNS캐쉬정리-인너텟 속도 개선 팁 (0) | 2012.04.05 |
JSP: 톰캣 + MySQL + 이클립스, 개발환경 구축 (0) | 2011.08.17 |