본문 바로가기

Programming/안드로이드

Java TCP 통신 : 서버 (채팅가능한 구조)

ㅁ 로직 개요

클라이언트 접속 대기 -> 접속 -> 새로운 쓰레드 생성 (데이터 송수신 대기)

----

----

ServerSocket serverSock;

 

Thread _serverThread = new Thread () {

@Override

public void run () {

try {

serverSock = new ServerSocket(포트넘버);

while (true) {

Socket _clientScoket = serverSock.accept();     //클라이언 접속

Thread _clientThread = new Thread() {    //클라이언트 쓰레드 생성

@Override

public void run () {

while (true){

try {

byte[] _byteArray = new byte[100];

//클라이언트의 데이터 받기

InputStream _inputS = _clientSocket.getInputStream();

DataInputStream _dataInputS = new DataInputStream(_inputS);

//데이터 파싱

 

//데이터 보내기

OutputStream _outS = _clientSocket.getOutputStream();

DataOutputStream _dataOuts = new DataOutputStream(_outS);

//보내는 로직

}

catch (IOException e) {

}

}

}

};

_clientThread .start();

}

} catch (IOException e) {

}

}

};

_serverThread .start();

 

클라이언트를 받고 클라이언트와 통신하기 위한 단순한 구조입니다.

아무래도 클라이언트를 받았으니 따로 받아두었다가 관리하는게 좋겠죠?