Language/Java32 소켓은 stateful 서버 vs 웹(HTTP 통신)은 stateless 서버 웹도 소켓이다. 클라이언트는 키보드로부터 주소를 입력받는 버퍼가 있을 것이다. 클라이언트가 브라우저를 이용해 연결 요청 + 데이터 요청 네이버 서버가 요청을 받고 연결이 되면 클라이언트와 서버에 버퍼가 달린다. 네이버 서버는 HTML 코드를 버퍼에 담아서 클라이언트에게 응답해준다. 브라우저는 코드를 받아서 화면에 그림을 그린다. 소켓통신은 계속 연결이 지속된다. 스트림이 끊기지 않는다. = stateful 서버 웹 통신 (HTTP 통신) 은 코드를 넘긴 다음 연결을 끊는다. 즉 스트림이 끊어진다. = stateless 서버 2023. 4. 21. 일대일 양방향 소켓통신 서버 소켓과 클라이언트 소켓 간의 일대일 양방향 통신을 해본다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; public class ServerFile { // 전역변수로 선언 // 클라이언트 연결을 받는 소켓 ServerSocket serverSocket; // 실제 통신을 하는 소켓 Socket socket; BufferedReader br; // 새로운 스레드가 필요하.. 2023. 4. 21. 일대일 단방향 소켓통신(지속) 저번에 했던 일대일 소켓 통신은 클라이언트 소켓이 키보드로부터 메시지를 입력 받고 서버 소켓으로 전송, 서버 소켓이 읽으면 프로그램이 종료된다. 이번에는 프로그램이 종료되지 않고 계속 메시지를 보낼 수 있도록 만들어본다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class ServerFile { // 전역변수로 선언 // 클라이언트 연결을 받는 소켓 ServerSocket serverSocket; // 실제 통신을 하는 소켓 Socket socket; BufferedReader br; public ServerFile() {.. 2023. 4. 21. 포트, 소켓으로 단방향 일대일 통신(종료) 포트(Port) 💡 데이터를 입력하고 출력하는 출입구 : ip주소에 있는 여러 데이터 출입구. 출입구마다 포트 번호가 지정 포트는 0~65535번까지 65536개가 있다. -> 2의 16승 -> 2바이트 -> 16비트 0~1023 포트는 사용할 수 없고 1024번 이상의 포트는 사용할 수 있다. 목적지를 좀 더 상세히 알려주면 배들이 섞이지 않고 잘 도착한다. 아파트 동 호수 와 비슷하게 생각하면 쉽게 이해할 수 있겠다 :) 바이트 스트림은 하나이고 양 끝단에 버퍼를 달고 통신을 한다. 각각 필요한 프로그램이 다른데 하나의 스트림으로 통하니, 포트를 지정해주면 해당 프로그램에 바로 찾아가서 도착할 수 있게 된다. 응용프로그램은 서버와 포트로 통신한다. 소켓통신 💡 양 끝단에 포트를 두고 포트끼리 바이트스.. 2023. 4. 17. 스트림(Stream), 바이트 스트림, 배열 스트림, 버퍼 스트림 스트림(Stream) 💡 스트림(Stream) : 순서가 있는 데이터의 연속적인 흐름 하나의 스트림은 하나의 방향만 가능(입력 스트림과 출력 스트림) 키보드에 A라는 데이터를 입력하고 전송하려면 키보드랑 컴퓨터 사이 연결된 선이 있어야한다. 이 선이 스트림이다. 스트림은 1바이트 즉 8비트 단위로 데이터가 왔다갔다. 문자를 하나씩 전송하는 방법 Input/Output (I/O) 부호는 숫자로 변환되어 전송된다. 01000001 이 부호와 숫자는 아스키코드 표로 정의되어 있다. 컴퓨터 입장에서는 데이터가 들어오는 것. Input 이다. 아스키코드표 부호화시킴 컴퓨터가 모니터에 출력하는 경우 데이터를 출력하는 것. Output 이다. 바이트 스트림(Byte Stream) 8bit의 바이트 단위로 입출력. 이.. 2023. 4. 14. String Constant Pool / 문자열 비교는 equals String Constant Pool 💡 String Constant Pool : literal(큰 따옴표) 로 String 객체 생성 시 저장 공간. Heap 영역 내부에 있음. 장점 : 같은 문자열은 같은 공간을 공유해서 사용하기 때문에 메모리 효율이 좋다. 단점 : 문자열을 변경할 때마다 새로운 공간이 할당된다. 자주 변경하는 경우에는 사용하지 않는 게 좋다. 메모리를 효율적으로 사용하기 위해서는 String literal(큰 따옴표)로 String을 생성하는게 좋다고 한다 ! String 클래스 이해하기 String 은 첫 글자가 대문자 즉 클래스 이다. 기본 자료형이 아니기 때문에 주소를 가지고 있다. String 원리는 char 배열이다. String 객체 생성은 S0, S1 처럼 String.. 2023. 4. 10. 이전 1 2 3 4 ··· 6 다음