Java49 Http Get 요청 - 인증된 사용자만 세션키 받아오기 서버와 통신하기 위해 만들었다 HttpURLConnection을 이용하여 통신하였으며, GET method를 이용하여 올바른 사용자 이름과 비밀번호를 제공해야 sessionKey를 할당 받게 만들었다. 간단한 권한 부여를 만들기 위해 예를 든 내용이기 때문에 실제 환경에서는 더 강력한 인증, 권한을 부여해줘야 한다. 또한 여기에서는 자바만이 보여지는데 실제로는 DB를 사용해서 정보를 저장해야한다. 전체코드import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import org.json.JSONE.. 2023. 9. 9. Java 음성 소켓 통신(서버, 클라이언트) 기초 ✔ Server import java.io.*; import java.net.*; import javax.sound.sampled.*; public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; try { // 서버 소켓 생성 serverSocket = new ServerSocket(12345); System.out.println("서버가 12345번 포트에서 연결 요청을 기다리고 있습니다..."); // 클라이언트 연결 대기 Socket clientSocket = serverSocket.accept(); System.out.println("클라이언트가 접속.. 2023. 4. 21. JAVA 채팅 프로그램 ✔ JAVA 채팅 프로그램 쓰레드 병렬처리 ServerSocket의 accept() 실행하면 해당 작업이 완료되기전까지 블로킹(blocking)이 일어남 쓰레드를 사용하면 블로킹이 일어나는 현상을 해결할 수 있음 DataInputStream - 기본 데이터타입 단위로 데이터를 읽을 수 있음 - byte 단위로 데이터를 읽는 것이 아님 - readUTF() : UTF-8(모든 언어가 사용가능한) 형식으로 코딩된 문자열을 읽을 수 있음 DataOutputStream - 기본 데이터타입 단위로 데이터를 쓸 수 있음 - byte 단위로 데이터를 쓴는 것이 아님 - writeUTF() : UTF-8(모든 언어가 사용가능한) 형식으로 코딩된 문자열을 출력할 수 있음 서버 import java.io.DataInput.. 2022. 10. 20. JAVA (TCP/IP, 서버 클라이언트) 2. TCP/IP 네트워킹 소켓(socket) - 두 호스트 사이 연결 - 어떠한 방식으로 통신을 할지도 정해주는 것 - 원격 장비에 연결, 데이터 전송(보내기, 받기), 포트 지정, 수신 대기(서버와 클라이언트 관계(c/s), p2p) ServerSocket 클래스 - 클라이언트의 연결 요청을 기다리면서 연결 수락을 담당하는 클래스 (대기하다가, 일반소켓을 만들고 일반 소켓끼리 통신할 수 있도록 만들어 연결을 해주는 역할) -> 서버부터 실행을 해야한다.(대기상태에서) Socket 클래스 - 연결된 클라이언트와 통신을 담당하는 클래스(사용자가 접속할 수 있는) 문제. 에코서버를 만들어보자. 데이터 클라이언트 -----> 서버 5 밖으로 보넬 아웃풋 스트림을 통해 나갈거 만들고 -> 버퍼에다 담을거기 떄.. 2022. 10. 20. JAVA 네트워크 1. 네트워크(Network) - Net + work 합성어 - 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용형태 인터넷(Internet) - 컴퓨터로 연결하여 TCP/IP 프로토콜을 이용하여 정보를 주고받는 네트워크 ✔ IP(Internet Protocol) - 인터텟 연결되어 있는 모든 장치를 식별할 수 있도록 장비에게 부여되는 고유 주소 ✔ IPv4 - 8bit씩 4자리 - 하나의 스텟마다 0 ~ 255 (0 ~ 42억9천) 예) 211.100.85.100 - 향후 IPv6, 32bit 내 아입피 확인 - 네이버 "내 ip"로 검색 -> 123.142.55.115 - cmd -> ipconfig -> 192.168.12.12 도메인 -> IP, IP -> 도메인 - cmd -> nsl.. 2022. 10. 20. 자바 제네릭(Generic) 1. 제네릭(Generic) 클래스나 메소드에서 사용할 데이터의 타입을 컴파일시에 미리 지정하는 방법 제네릭을 사용하는 이유 - 다양한 타입의 객체의 재사용을 높일 수 있음 - 클래스에서 사용할 타입을 외부에서 사용 - 반복적인 코드, 불필요한 코드를 사용하지 않도록 함 - 강제적인 형변환을 발생시키지 않음 public class Generic1 { public static void main(String[] args) { // Box2 box1 = new Box2(); // Box2 box1 = new Box2(); Box2 box1 = new Box2(); box1.setT("안녕하세요"); System.out.println(box1.getT()); String str = box1.getT();// 형.. 2022. 10. 12. 자바 스레드 1. 스레드(Thread) 프로세스 - 윈도우 작업 관리자에서 프로세스 탭에 올라와 있는 어플리케이션 하나 - 운영체제로부터 필요한 메모리를 할당받아 어플리케이션 코드를 실행 멀티 태스킹 - 두가지 이상의 작업을 동시(병렬작업)에 처리하는 것 스레드 - 하나의 프로세스 내부에서 독립적으로 실행되는 작업단위 - 운영채재애 의해 관리되는 하나의 작업 혹은 Task를 의미 - 다중 스레드 작업시에는 각 스레드끼리 정보를 주고 받을 수 있어 처리 과정의 오류를 즐일 수 있음 - 각 프로세스는 서로 정보를 주고 받을 수 없음 - JVM에 의해 하나의 프로세스가 발생, main() 안에 실행문들이 하나의 스레드 멀티 스레드 - 여러 스레드를 동시에 실행시키는 응용프로그램을 작성하는 기법 - 메모리 공유로 인한 시스.. 2022. 10. 7. 자바 영어단어장 영어단어장 프로그램을 작성해보자. 1. 지난 단어장을 수정하여 save라는 명령을 입력하면 wordbook.txt 단어를 저장 2. 프로그램을 재시작할 때 wordbook.txt에서 단어를 읽어와 메모리에 저장 public class World {//먼저 변수를 선언한다. private String english; private String korean; private int level; private String wdate; // 변수가 private로 선언되어 있기 때문에 this를 이용하영 받아온 값을 넘겨준다. public World(String english, String korean, int level, String wdate) { this.english = english; this.korea.. 2022. 10. 7. 자바 File 다루기 3. 파일 다루기 File 클래스 파일 또는 디렉토리 다루는 클래스 입출력 관한 작업 File 참조변수 = new File(파일 경로 또는 파일이름); ✔ 스트림(Stream) - 자바는 파일이나 콘솔에 입출력을 직접 다루지 않고 스트림이라는 흐름을 통해 다룸 - 운영체제에 의해 생성되는 가상의 연결고리를 의미하고 중간 매개자 역할을 함 Java 프로그램 OS(운영체제) 디스크(파일, 디렉토리) 스트림(흐름) 모니터, 프린터, 네트워크... ✔ 절대경로 믈리적인 경로 예) C:\Java\Day9\Day9.txt ✔ 상대경로 현재 동작하고 있는 파일을 중심으로 상대적인 경로 예) Day9.txt, 디렉토리명/Day9.txt, ../Day9.txt import java.io.File; import java... 2022. 10. 7. 이전 1 2 3 4 ··· 6 다음