목록Java (59)
알고보면코딩천재

HTTP 통신과 SOCKET 통신의 비교 HTTP 통신 -Client의 요청(Request)이 있을 때만 서버가 응답(Response)하여 해당 정보를 전송하고 곧바로 연결을 종료 특징 -Client가 요청을 보내는 경우에만 Server가 응답하는 단방향 통신 -Server로부터 응답을 받은 후에 연결이 바로 종료됨 -실시간 연결이 아니고, 필요한 경우에만 Server로 요청을 보내는 상황에 유용하다. -요청을 보내 Server의 응답을 기다리는 어플리케이션의 개발에 주로 사용된다. SOCKET 통신 -Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식 특징 -Server와 Client가 계속 연결을 유지하는 양방향 통신 -Server와 Client가 실시간으로 데이터를..

전이중 통신이란? 스레드의 핵심은 메서드! 버퍼가 두개가 걸려있어야 한다. 메인스레드 - 쓰는 거 새로운스레드 - 받는 거 Thread t1 = new Thread(); t1.start(); 내부클래스로 짠다. class ReadThread implements Runnable { @Override public void run() { try { while(true) { String msg = br.readLine(); System.out.println("받은 메시지 : "+msg); if(msg.equals("싸이코::bye")) { break; } } } catch (Exception e) { e.printStackTrace(); } } } br 오류 나는 이유 init()에 만들어 있기 때문에 Buff..

3. 서버는 read만 하고 있다. while문 write도 하고 싶으면 스레드! 자바는 cpu가 일하는 연산장치 - 메인 스레드를 들고 있다. 멀티 프로세스 내가 두개면 cpu가 하나 더 필요하다 내가 하난데 두개의 일을 하고 싶으면 스레드로 쪼개서 왔다갔다 하면 된다.(동시에 하는 건 아님)-타임 슬라이싱 왔다갔다= context switching 스레드는 속도가 아니라 ux를 위해서 쓰는 것 스레드마다 context기록 - meta data 메타 데이터라고 한다. 자바는 최초에 실이 하나가 있다 - 메인 스레드 실이 만들어진 시점부터 새로운 스레드 진행 + 메인 스레드 진행 (왔다갔다하면서) 새로운 스레드도 메인 메서드를 들고 있다. 그 메서드의 길이가 스레드의 길이. 하나의 스레드라도 돌고 있으면..

서버 종료하는 프로토콜을 만들어보자 package sock.ex03; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class MyServerSocket { ServerSocket serverSocket; public void init() { System.out.println("서버 시작---------------"); try { serverSocket = new ServerSocket(10000); // 0~65525 이중에서 0~1023 well known port 8080,..

System.out.println(br.readLine()); readLine(); 버퍼를 비우는 것 소비하는 것. 메세지 받는 것! 대기하고 있다 \n이 들어오면 읽는다. \n 기준으로 끊어 읽기 때문. \n이 안들어온 상태면 버퍼에만 쌓인다. \n 들어오면 소비를 한다. 1. 소켓이 만들어지고 나서 while을 돌리면 된다. Reader에서는 어디에 while 걸어야 할까? - readLine(); package sock.ex02; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; publi..

소켓 라이브러리를 컴퍼지션 소켓을 하나 만든 것 소켓없이는 통신 못한다. 리스너도 필요하다(while). 리스너의 포트번호 10000으로 정함 os가 들고 있는 어떤 함수를 빌려쓰는 것 시스템 콜 함수 SeverSocket OS네이티브 함수 1. 서버 소켓 만들기 package sock.ex01; import java.io.IOException; import java.net.ServerSocket; public class MyServerSocket { ServerSocket serverSocket; public void init() { System.out.println("서버 시작---------------"); try { serverSocket = new ServerSocket(10000); // 0~..

선생님 깃헙 gonggong 패키지 참고할것 공공데이터포털 가입 복사-메모장 구체적 질의 , 쿼리 스트링 key=value 주소 https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst?serviceKey=k8JFlywzkxuAY6WyQ9%2BUHrwY5j%2FxFAf8jBw4VsTKk%2Bp05%2B%2FtXp24g03r91sl8bi3cT6dyITat3PDFSO6yDxarQ%3D%3D &pageNo=1 &numOfRows=1000 &dataType=JSON &base_date=20220822 &base_time=1500 &nx=55 &ny=127 \n : enter {} : JSON object [] : JSON array 벡터..