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();
	}
}

'개발 > JAVA' 카테고리의 다른 글

Java 자바 UNIX Timestamp 변환 timestamp to date String  (0) 2023.04.20
byte Array to  (0) 2023.04.20
[Java] Byte Reverse  (0) 2023.04.20
myBatis selectone null 처리  (0) 2017.11.21
Spring VO 객제 복사 하기  (0) 2017.08.04
public String getTimestampToDate(String timestampStr){
    long timestamp = Long.parseLong(timestampStr);
    Date date = new java.util.Date(timestamp*1000L); 
    SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT+9")); 
    String formattedDate = sdf.format(date);
    return formattedDate;
}

출처 : https://aljjabaegi.tistory.com/460#Java_%EC%9E%90%EB%B0%94_UNIX_Timestamp_%EB%B3%80%ED%99%98_timestamp_to_date_String

'개발 > JAVA' 카테고리의 다른 글

[Java] TCP Server Thread로 만들기  (0) 2023.04.20
byte Array to  (0) 2023.04.20
[Java] Byte Reverse  (0) 2023.04.20
myBatis selectone null 처리  (0) 2017.11.21
Spring VO 객제 복사 하기  (0) 2017.08.04
public short byteArrayToShort(byte[] bytes) {
    bytes = reverse(bytes);
    return ByteBuffer.wrap(bytes).getShort();
}

public int byteArrayToInt(byte[] bytes) {
    bytes = reverse(bytes);
    return ByteBuffer.wrap(bytes).getInt();
}

public long byteArrayToLong(byte[] bytes) {
    bytes = reverse(bytes);
    return ByteBuffer.wrap(bytes).getLong();
}

public float byteArrayToFloat(byte[] bytes) {
    bytes = reverse(bytes);
    return ByteBuffer.wrap(bytes).getFloat();
}

public double byteArrayToDouble(byte[] bytes) {
    bytes = reverse(bytes);
    ByteBuffer buffer = ByteBuffer.wrap(bytes);
    return buffer.getDouble();
}

public byte[] reverse(byte[] objects) {
    byte[] temp = new byte[objects.length];
    for (int left = 0, right = objects.length - 1; left <= right; left++, right--) {
        temp[left]=objects[right];
        temp[right]=objects[left];
    }
    return temp;
}

'개발 > JAVA' 카테고리의 다른 글

[Java] TCP Server Thread로 만들기  (0) 2023.04.20
Java 자바 UNIX Timestamp 변환 timestamp to date String  (0) 2023.04.20
[Java] Byte Reverse  (0) 2023.04.20
myBatis selectone null 처리  (0) 2017.11.21
Spring VO 객제 복사 하기  (0) 2017.08.04

+ Recent posts