티스토리 뷰
○ 자바의 TCP/IP 소켓통신 예제샘플이 대부분 스트링을 이용한 채팅 예제인지라. byte를 이용한 hex값 통신 예문을 찾아보기 힘들기에...
○ 여러개의 클라이언트를 처리할 수 있는 루틴이다.
[소스] TcpSockServer
/** * TCP/IP 서버모듈 (tcp client에서 받은데이터를 server sock모듈을 통해 상단에 전달) * * 작성일자: 2013. 06. 26 * 작성자명: HwangKyuseok (황규석) * */ import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class TcpSockServer { private ServerSocket serversock; /** ********************************************************************************* * 생성자함수 * @param iport: 서버포트 * *********************************************************************************/ public TcpSockServer(int iport) { //서버소켓 생성 try { System.out.println("[서버실행]"); serversock = new ServerSocket(iport); //무한 루프로 클라이언트의 요청을 반복적으로 처리 while(true) { System.out.println("[클라이언트 접속을 위한 대기중...]"); Socket sock = serversock.accept(); System.out.println("[클라이언트 IP '" + sock.getInetAddress() + "' 접속됨 ]"); // 클라이언트와 통신할 쓰레드생성 TcpSockServer_read st = new TcpSockServer_read(sock); st.start(); } } catch(IOException e) { e.printStackTrace(); } } /** ********************************************************************************* * [사용예] * **********************************************************************************/ public static void main(String[] args) { new TcpSockServer(9001); }
[소스] TcpSockSrver_read
.
/** * 소켓을 통해 각각의 클라이언트와 통신 연결, 클라이언트의 입력 데이터처리 * 작성일자: 2013년 06월 27일 * 작성자명: HwangKyuseok (황규석) * */ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; public class TcpSockServer_read extends Thread { Socket sock = null; DataOutputStream dos; DataInputStream dis; //읽기버퍼 byte[] rbuff = new byte[1024]; int rbuff_cnt =0; //연결된 클라이언트 아이피 String sip = null; /** ********************************************************************************* * 생성자 함수 (소켓연결) * *********************************************************************************/ TcpSockServer_read(Socket sock) { this.sock = sock; sip = sock.getInetAddress().toString(); } /** ********************************************************************************* * 쓰레드 (루프처리) * *********************************************************************************/ public void run() { try { try { // 클라이언트와 문자열 통신을 위한 스트림 생정 dos = new DataOutputStream(sock.getOutputStream()); dis = new DataInputStream(sock.getInputStream()); while(true) { //Thread.sleep(1); rbuff_cnt = dis.read(rbuff); fn_testDisplay(rbuff,rbuff_cnt); } } finally { dis.close(); dos.close(); sock.close(); } } catch(IOException e){ System.out.println("클라이언트 IP '" + sip + "' 접속종료"); } } /** ********************************************************************************* * test용 디스플레이 * *********************************************************************************/ private void fn_testDisplay(byte buf[], int 갯수) { int i; System.out.print("수신데이터: "); for(i=0; i<갯수 ;i++) System.out.print(String.format("0x%02X ", buf[i])); System.out.println(""); } }
[실행결과화면]
[서버실행]
[클라이언트 접속을 위한 대기중...]
[클라이언트 IP '/172.16.0.61' 접속됨 ]
[클라이언트 접속을 위한 대기중...]
수신데이터: 0x00 0x02 0x00 0x00 0x00 0x06 0x01 0x03 0x00 0x00 0x00 0x21
수신데이터: 0x00 0x02 0x00 0x00 0x00 0x06 0x01 0x03 0x00 0x00 0x00 0x21
수신데이터: 0x00 0x02 0x00 0x00 0x00 0x06 0x01 0x03 0x00 0x00 0x00 0x21
클라이언트 IP '/172.16.0.61' 접속종료
[참고하기 좋은책]
|
'프로그램 > JAVA' 카테고리의 다른 글
[ JAVA ] HashMap 해쉬맵 데이터 나열 (0) | 2015.04.22 |
---|---|
[ Servlet ] JDBC를 이용한 MySql 연동 (두번째) (0) | 2014.08.11 |
[ Java ] JDBC를 이용한 MySql 연동 (첫번째) (0) | 2014.07.22 |
[Servlet] 이클립스에서 서블릿 작성 및 배포환경 구성 (1) | 2014.06.27 |
[ JAVA ] 사용자가 작성한 소켓, 쓰레드 클래스의 동적생성 (0) | 2013.07.12 |
[ JAVA ] 자바로 구현해보는 모드버스의 crc16 체크섬 (2) | 2013.06.26 |
[ Java ] excel의 csv 파일을 읽어 2차원배열에 옮기기 (3) | 2013.04.02 |
[Java 와 R 연재 3] rJava JRI을 사용하기위한 설치및 환경설정 (14) | 2012.02.24 |
Eclipse Indigo 에서 Spring 설치 (0) | 2012.02.17 |
[Java 와 R 연재2] rJava 를 사용한 예제 (2) | 2012.01.12 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 김정환
- 안드로이드
- rJava
- 동적할당
- flex
- Post
- C#
- MenuBar
- 서블릿
- Servlet
- java
- CRC16
- 자바
- 통계
- 세월호
- 플렉스
- 독서
- 소설
- MySQL
- 모드버스
- 쓰레드
- R
- 티스토리 초대장
- SQLite
- 특별법
- Modbus
- C++Builder
- 한빛미디어
- 책
- XML
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함