개인공부/Java
-
해당 닉네임을 사용하는 클라이언트가 서버에 접속 중일 경우 유효성 검사에 의해 접속 불가 처리를 구현하였습니다. 클라이언트가 필터링 단어를 지정하면 해당 단어는 특수문자 처리가 되는 것을 확인할 수 있습니다 귓속말할 대상의 대화명을 입력 후 대화 내용을 입력하면 그 클라이언트에게만 메시지를 전송한다 채팅방의 테마를 설정하는 기능을 구현 하였다 Client.java package Multicast; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.Socket; class ClientExample4 extends JFrame ..
java 소켓 멀티캐스트 && JFrame해당 닉네임을 사용하는 클라이언트가 서버에 접속 중일 경우 유효성 검사에 의해 접속 불가 처리를 구현하였습니다. 클라이언트가 필터링 단어를 지정하면 해당 단어는 특수문자 처리가 되는 것을 확인할 수 있습니다 귓속말할 대상의 대화명을 입력 후 대화 내용을 입력하면 그 클라이언트에게만 메시지를 전송한다 채팅방의 테마를 설정하는 기능을 구현 하였다 Client.java package Multicast; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.Socket; class ClientExample4 extends JFrame ..
2022.09.06 -
쿠키와 세션을 사용하는 이유 HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용된다. Connectionless 프로토콜 (비연결지향) 클라이언트가 서버에 요청(Request)을 했을 때, 그 요청에 맞는 응답(Response)을 보낸 후 연결을 끊는 처리방식이다. * HTTP 1.1버전에서 연결을 유지하고, 재활용하는 기능이 Default로 추가되었다. (keep-alive값으로 변경 가능) Stateless 프로토콜 (상태정보 유지 안함) 클라이언트의 상태 정보를 가지지 않는 서버 처리 방식이다. 클라이언트와 첫번째 통신에서 데이터를 주고 받았다 해도, 두번째 통신에서 이전 데이터를 유지하지 않는다. 하지만 실제로는 데이터 유지가 필요한 경우가 많다. 정보가 유지되지 않으면, 매번 페이지를 이동..
쿠키와 세션쿠키와 세션을 사용하는 이유 HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용된다. Connectionless 프로토콜 (비연결지향) 클라이언트가 서버에 요청(Request)을 했을 때, 그 요청에 맞는 응답(Response)을 보낸 후 연결을 끊는 처리방식이다. * HTTP 1.1버전에서 연결을 유지하고, 재활용하는 기능이 Default로 추가되었다. (keep-alive값으로 변경 가능) Stateless 프로토콜 (상태정보 유지 안함) 클라이언트의 상태 정보를 가지지 않는 서버 처리 방식이다. 클라이언트와 첫번째 통신에서 데이터를 주고 받았다 해도, 두번째 통신에서 이전 데이터를 유지하지 않는다. 하지만 실제로는 데이터 유지가 필요한 경우가 많다. 정보가 유지되지 않으면, 매번 페이지를 이동..
2022.09.04 -
UniClient.java import java.io.*; import java.net.*; public class UniClient { private String ip; private int port; private String str; MsgListener msgListener = null; msgWriter msgWriter = null; public UniClient(String ip, int port) throws IOException { this.ip = ip; this.port = port; Socket tcpSocket = getSocket(); msgListener = new MsgListener(tcpSocket); msgWriter = new msgWriter(tcpSocket); m..
Unicast 프로그램UniClient.java import java.io.*; import java.net.*; public class UniClient { private String ip; private int port; private String str; MsgListener msgListener = null; msgWriter msgWriter = null; public UniClient(String ip, int port) throws IOException { this.ip = ip; this.port = port; Socket tcpSocket = getSocket(); msgListener = new MsgListener(tcpSocket); msgWriter = new msgWriter(tcpSocket); m..
2022.09.02 -
Java 입출력 지금까지 기본적으로 자바에서 입출력을 위해 사용하던 것은 Scanner 와 print 이다. 이것들은 자바에서 가장 쉽게 입출력을 구현할 수 있는 수단이고, 때문에 그냥 단순히 입출력하는 방법 으로만 알아왔다. 사실 컴퓨터에서는 이러한 입력과 출력 즉, Input과 Output 을 줄여서 I/O 라고 한다. 자바에서는 이러한 모든 I/O 가 Stream(스트림) 을 통해 이루어진다. - What is Stream? 그렇다면 Stream(스트림) 은 무엇일까? 스트림은 쉽게 이야기해서 Byte 형태로 데이터를 운반하는데 사용되는 연결통로 라고 생각하면 된다. 이는 자료(data)의 흐름이 물의 흐름과 같다는 의미에서 사용되었다고 한다. 다만 물이 한쪽 방향으로만 흐르는 것과 같이 스트림은 ..
Java 입출력(I/O), 스트림(Stream), 버퍼(Buffer) 개념Java 입출력 지금까지 기본적으로 자바에서 입출력을 위해 사용하던 것은 Scanner 와 print 이다. 이것들은 자바에서 가장 쉽게 입출력을 구현할 수 있는 수단이고, 때문에 그냥 단순히 입출력하는 방법 으로만 알아왔다. 사실 컴퓨터에서는 이러한 입력과 출력 즉, Input과 Output 을 줄여서 I/O 라고 한다. 자바에서는 이러한 모든 I/O 가 Stream(스트림) 을 통해 이루어진다. - What is Stream? 그렇다면 Stream(스트림) 은 무엇일까? 스트림은 쉽게 이야기해서 Byte 형태로 데이터를 운반하는데 사용되는 연결통로 라고 생각하면 된다. 이는 자료(data)의 흐름이 물의 흐름과 같다는 의미에서 사용되었다고 한다. 다만 물이 한쪽 방향으로만 흐르는 것과 같이 스트림은 ..
2022.09.02 -
사용자가 어떤 홈페이지로 이동하기 위해서 URL을 브라우저 주소창에 작성하고 엔터를 누르면 원하는 페이지로 이동합니다. 사용자는 단순히 URL(Uniform Resource Locator)을 입력하였을 뿐이지만 서버 내부에서는 클라이언트의 요청에 응답(웹페이지로 표현)하기 위해서 처리를 해주어야 합니다. 여기서 클라이언트가 서버로 요청을 보내는 방법인 HTTP Method에는 크게 2가지 방식이 있는데, 그것이 바로 오늘의 주인공인 GET방식과 POST방식입니다. HTTP GET방식과 POST방식에 대해 알아보기 위해서는 HTTP 프로토콜에 대해 알고 있어야 합니다. HTTP(Hypertext Transfer Protocol)란 하이퍼텍스트 전송 규약으로 Web-Client와 Web-Server간 데이터..
URL GET POST 방식사용자가 어떤 홈페이지로 이동하기 위해서 URL을 브라우저 주소창에 작성하고 엔터를 누르면 원하는 페이지로 이동합니다. 사용자는 단순히 URL(Uniform Resource Locator)을 입력하였을 뿐이지만 서버 내부에서는 클라이언트의 요청에 응답(웹페이지로 표현)하기 위해서 처리를 해주어야 합니다. 여기서 클라이언트가 서버로 요청을 보내는 방법인 HTTP Method에는 크게 2가지 방식이 있는데, 그것이 바로 오늘의 주인공인 GET방식과 POST방식입니다. HTTP GET방식과 POST방식에 대해 알아보기 위해서는 HTTP 프로토콜에 대해 알고 있어야 합니다. HTTP(Hypertext Transfer Protocol)란 하이퍼텍스트 전송 규약으로 Web-Client와 Web-Server간 데이터..
2022.09.02 -
경로란? 경로는 프로그래밍 언어 또는 운영체제 등에서 파일을 찾아가는 방법을 경로라고 하며 경로에는 절대경로와 상대경로로 구분하여 사용할 수 있다. 즉 파일시스템 내에서 특정 파일의 위치, 이름을 나타내는 양식이다. 절대경로 작업 디렉토리와 관계없이 절대적인 위치를 가리키는 경로 예) '서울역' 의 위치 리눅스 예시: /etc/httpd/conf/httpd.conf 윈도우 예시: C:\Windows\System32\drivers\etc\hosts 상대경로 작업 디렉토리를 기준으로 상대적인 위치를 가리키는 경로 예) "가까운 이마트 또는 건물 옆 쇼핑몰"의 위치 리눅스 예시: /conf/httpd.conf 윈도우 예시: ..\dirvers\etc\hosts 최상위 디렉토리 (루트 디렉토리) / : 최상위 ..
절대경로와 상대경로경로란? 경로는 프로그래밍 언어 또는 운영체제 등에서 파일을 찾아가는 방법을 경로라고 하며 경로에는 절대경로와 상대경로로 구분하여 사용할 수 있다. 즉 파일시스템 내에서 특정 파일의 위치, 이름을 나타내는 양식이다. 절대경로 작업 디렉토리와 관계없이 절대적인 위치를 가리키는 경로 예) '서울역' 의 위치 리눅스 예시: /etc/httpd/conf/httpd.conf 윈도우 예시: C:\Windows\System32\drivers\etc\hosts 상대경로 작업 디렉토리를 기준으로 상대적인 위치를 가리키는 경로 예) "가까운 이마트 또는 건물 옆 쇼핑몰"의 위치 리눅스 예시: /conf/httpd.conf 윈도우 예시: ..\dirvers\etc\hosts 최상위 디렉토리 (루트 디렉토리) / : 최상위 ..
2022.09.02