본문 바로가기

2016/09

[JAVA] 소인수 분해(Integer Factorization) package jungbo; import java.util.InputMismatchException;import java.util.Scanner; public class T32IntegerFactorization {public static void main(String[] args) {int num;//수를 입력받을 변수int print;//출력을 위한 변수Scanner scan = new Scanner(System.in);while(true){try{System.out.print("소인수분해 할 수를 입력하세요. : ");num = scan.nextInt();print = num;//num은 변하기 때문에 출력을 위해 print에 미리 넣어둠break;}catch(InputMismatchExceptio.. 더보기
16일차 JLPT 문법 ~ものだ☆ 「ものだ」 本当に~だなあ ※感慨 ① こんなきれいな海岸を、恋人と歩いてみたいものだなあ。② もう1年たったのか。早いものだ。 ※過去の回想 「~だものだ」の形で使われる ① なつかしい喫茶店だ。ここでよく彼女と待ち合わせをしたものだ。② 子供のころ、いたずらばかりして先生を困らせたものだ。 ~が一般的な常識だ ※人に対して注意する時によく使われる ① 約束をしたら、きちんと守るものだ。② 名前を呼ばれたら、すぐ返事するものですよ。 ~ものではない ~は常識に反するからしてはいけない ① 人の失敗を笑うものではない。② 食べ物を口に入れたまま話すものじゃありませんよ。 ~というものだ ~と言って当然だ ① お世話になったのにお礼も言わないのは、非常識というものだ。② 「今すぐ結婚して」と言われても、それは無理というものです。 ~というものではない ~とは決まっていない ~.. 더보기
JAVA 20일차 필기 AWT로 모의 채팅포맷 만들어보기 package com.javalesson.ch20awt; import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.text.SimpleDateFormat;import java.util.Date;//현재 시간 public class L02TextComponent extends Frame{TextArea ta;TextField tf;.. 더보기
[JAVA] 대각선 채우기(diagonal) 5*5 대각선 채우기 9회전까지 I = 2회전(1,2) (2,1) I = 3회전(1,3) (2,2) (3,1) I = 4회전(1, 4) (2, 3) (3, 2) (4, 1) package jungbo; public class T14Diagonal {public static void main(String[] args) {int array[][] = new int[5][5];int cnt;int i = 1;int row, col;for(cnt=0;cnt 더보기
[JAVA] 합병(Merge) 이미 정렬 되어있다는 가정하에 시작해야 하며정렬되어 있지 않다면 먼저 정렬해야 한다. 예제 배열 A = {1,3,5,7,9,11,13,15,17,19}예제 배열 B = {2,4,6,8,10,12,14,16,18,20} 을 Merge 배열에 순서대로 합병하라. 실행 결과 package jungbo; public class T03Merge {public static void main(String[] args) {int A[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};int B[] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};int Merge[] = new int[20];int J,K,L;J=0; K=0; L=0;for(;;){if(A[J] 더보기
[JAVA] 소켓 생성과 연결(Client) 소켓 생성과 연결 java.net.Socket 클래스는 클라이언트 측의 TCP 기능을 수행하기 위한 자바의 기본 클래스이다. 그리고 URL, URLConnection, Applet, JEditorPane 같은 TCP 네트워크 연결을 생성하는 클라이언트 기반의 클래스들 역시 내부적으로 결국에는 java.net.Socket의 메소드를 호출한다. java.net.Socket 클래스 자체는 호스트 운영체제의 로컬 TCP 스택과 통신을 위해 네이티브 코드를 사용한다. 기본 생성자 각각의 소켓 생성자는 연결할 호스트와 포트를 매개변수로 전달받는다. 호스트 매개변수는 InetAddress 또는 String 타입으로 전달되며, 포트는 1에서 65535까지 int 타입으로 전달된다. public Socket(String.. 더보기
[JAVA] 소켓으로 서버에 쓰기(Client) 소켓에 입력 스트림뿐만 아니라 출력 스트림 또한 요청할 수 있다. 입력 스트림을 통해 데이터를 읽고 있는 동시에 출력 스트림을 사용하여 동시에 데이터를 보내는 것이 가능하지만, 대부분의 프로토콜은 동시에 읽고 쓰지 않도록 설계되어 있다. 즉, 한 번에 읽거나 쓰는 하나의 동작만 수행한다. 일반적으로 클라이언트가 요청을 보내면, 요청을 받은 후 서버가 응답을 보낸다. 그러고 나서 클라이언트가 또 다른 요청을 보내면, 서버는 또 다른 요청을 받은 후 응답을 보낸다. 이 과정은 어느 한쪽이 종료되거나 연결이 닫힐 때까지 계속된다. 양방향 TCP 프로토콜을 사용하는 간단한 예로 RFC 2229에 정의된 dict가 있다. 이 프로토콜에서 클라이언트는 dict 서버의 2628 포트에 대해 소켓을 열고 "DEFINE.. 더보기
[JAVA] 소켓으로 서버에서 읽기(Client) 위 예제는 Telnet 프로토콜을 이용하여 미국 국립표준기술연구소(NIST)의 daytime 서버에 13번 포트에 현재시간에 대한 요청을 보낸 것이다. 이 결과에서 "57634 16-09-03 06:46:59 50 0 0 150.2 UTC(NIST)" 라인이 daytime 서버에서 전송된 것이다. 소켓의 InputStream 을 사용하여 읽으면, 바로 이 값이 반환된다. 그 외의 다른 줄은 유닉스 셸이나 텔넷 프로그램에 의해 출력된 것이다. 지금은 소켓을 사용하여 코드상에서 동일한 결과를 얻는 방법을 보도록 하자. 먼저 time.nist.gov의 13번 포트에 대한 소켓을 연다. Socket socket = new Socket("time.nist.gov", 13); 이 코드는 객체를 만들 뿐만 아니라 실.. 더보기
[JAVA] 소켓의 기능과 동작 소켓이란 두 호스트 사이의 연결을 말한다. 소켓은 아래와 같은 기본적인 7가지 기능을 수행한다. ⊙ 원격 장비에 연결하기(connect) ⊙ 데이터 보내기(send) ⊙ 데이터 받기(recv)⊙ 연결 닫기(close) ⊙ 포트 지정하기(bind)⊙ 수신 대기하기(listen)⊙ 지정된 포트에 대해 원격 장비의 연결 받아들이기(accept) 자바의 Socket 클래스는 위에 나열된 기능 각각에 해당하는 메소드를 제공하며, 앞의 네 개는 서버와 클라이언트 모두에서 사용되고, 나머지 세 개는 클라이언트의 접속을 대기하는 기능으로 서버에서만 사용된다. 자바 프로그램은 보통 다음과 같은 방법으로 클라이언트 소켓을 사용한다. ⊙ 프로그램은 Socket 클래스의 생성자를 사용하여 새로운 소켓을 만든다.⊙ 생성된 소켓.. 더보기
[JAVA] 데이터그램과 소켓의 개요 인터넷을 통해 전달되는 데이터는 데이터그램(datagram)이라고 불리는 일정한 크기의 패킷으로 전송된다. 각각의 데이터그램은 헤더(header)와 페이로드(payload)를 포함하고 있다. 헤더에는 수신할 곳의 주소와 포트, 패킷을 송신한 곳의 주소와 포트, 데이터 손상을 탐지하기 위한 체크섬, 그 밖에 신뢰할 수 있는 전송을 위해 필요한 정보들이 포함되어있다. 페이로드에는 데이터 자체가 들어 있다. 그러나 데이터그램은 길이가 제한되어 있기 때문에, 종종 데이터를 다수의 패킷으로 분할하고 목적지에서 재조립할 필요가 있다. 그리고 또한 전송 중에 하나 이상의 패킷이 손실되거나 손상되어 재전송이 필요하거나, 패킷이 보낸 순서대로 도착하지 않을 경우 재정렬이 필요한 경우도 있다. 이러한 경우를 모두 처리하기.. 더보기