import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ServerController {
Socket sock = null;
DataOutputStream dos;
DataInputStream dis;
//읽기버퍼
byte[] rbuff = new byte[1024];
int rbuff_cnt =0;
//연결된 클라이언트 아이피
String sip = null;
String packet = "";
private Thread recvQThread;
public ServerController() {
//서버소켓 생성
recvQThread = new Thread(new Runnable() {
@Override
public void run() {
try {
ServerSocket serversock = new ServerSocket(8081);
//무한 루프로 클라이언트의 요청을 반복적으로 처리
while(true) {
Socket sock = serversock.accept();
sip = sock.getInetAddress().toString();
System.out.println("[클라이언트 IP '" + sip + "' 접속됨 ]");
tcpSockServer_read(sock);
}
} catch(IOException e) {
e.printStackTrace();
}
}
});
recvQThread.start();
}
public void tcpSockServer_read(Socket sock) {
try {
try {
// 클라이언트와 문자열 통신을 위한 스트림 생정
dis = new DataInputStream(sock.getInputStream());
while(true) {
//Thread.sleep(1);
rbuff_cnt = dis.read(rbuff);
int i;
String data = "";
for (i = 0; i < rbuff_cnt; i++) {
data += String.format("0x%02X", rbuff[i]).replace("0x", "");
}
System.out.println("data : "+ data);
}
} finally {
dis.close();
dos.close();
sock.close();
}
} catch(IOException e) {
System.out.println("클라이언트 IP '" + sip + "' 접속종료");
}
}
public static void main(String[] args) {
new ServerController();
}
}