TCP/IP socket (간단한 server/client)

간단한 TCP/IP Server

(warning) 종료 처리 하기 전까지 무한 반복하는 방식임
?
ServerSocket server = new ServerSocket([[서버 포트]]);
 
while (true) {
    Socket socket = server.accept();
 
    //----[ 데이터 받아서 처리하기 ]----------------------------------------
 
    InputStream       inputStream       = socket.getInputStream();
    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
    BufferedReader    bufferedReader    = new BufferedReader(inputStreamReader);
 
    String data   = "";
    char[] chars  = new char[256];
    int    length;
    while ((length = bufferedReader.read(chars)) != -1) {
        String newData = new String(chars, 0, length);
 
 
        // 새로 전송받은 데이터(newData) 처리
        data += newData;
    }
 
    [[전송받은 전체 데이터(data) 처리]]
 
    //----[ Client에게 데이터 보내기 ]----------------------------------------
 
    OutputStream       outputStream       = socket.getOutputStream();
    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
    PrintWriter        printWriter        = new PrintWriter(outputStreamWriter);
 
    printWriter.print([[보낼 데이터]]);
    printWriter.flush();
 
    //----[ Client와의 연결 종료 ]----------------------------------------
     
    printWriter.close();
    outputStreamWriter.close();
    outputStream.close();
 
    bufferedReader.close();
    inputStreamReader.close();
    inputStream.close();
 
    socket.close();
 
    // 전송받은 전체 데이터가 종료 명령이면 break
}
 
server.close();


간단한 TCP/IP Client


?
Socket socket = new Socket("[[IP]]", [[Port]]);
 
//----[ Server에게 데이터 보내기 ]----------------------------------------
 
OutputStream       outputStream       = socket.getOutputStream();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
PrintWriter        printWriter        = new PrintWriter(outputStreamWriter);
         
printWriter.print([[보낼 내용]]);
printWriter.flush();
 
//----[ Server가 보내는 값 받아서 처리하기 ]----------------------------------------
 
InputStream       inputStream       = socket.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader    bufferedReader    = new BufferedReader(inputStreamReader);
 
String data   = "";
char[] chars  = new char[256];
int    length;
while ((length = bufferedReader.read(chars)) != -1) {
    String newData = new String(chars, 0, length);
 
    // 새로 전송받은 데이터(newData) 처리
    data += newData;
}
     
[[전송받은 전체 데이터(data) 처리]]
 
//----[ Server와의 연결 종료 ]----------------------------------------
 
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
 
printWriter.close();
outputStreamWriter.close();
outputStream.close();
 
socket.close();

댓글

이 블로그의 인기 게시물

파일처리(한번에 모두읽기, 라인단위로 읽기, 쓰기, 리스트처리, 특정길이만큼 읽기)

AWS 가용성,확장성

math 함수 쓰기