// URL
//utf-8 파일
package network;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class URLRead {
public static void main(String[] args) {
try {
URL url = new URL("https://www.naver.com/");
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
String line ="";
while((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
} catch (MalformedURLException e) { // 주소가 존재하지 않는 주소라면
e.printStackTrace();
} catch (IOException e) { //openStream 열 때 오류 생기는 경우라면
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// 서버
package swing.chat;
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;
import java.util.Scanner;
public class ServerEx {
public static void main(String[] args) {
ServerSocket server = null; //서버
Socket socket = null; //소켓
BufferedReader in = null; //입력용
BufferedWriter out = null;//출력용
Scanner sc = new Scanner(System.in); //콘솔창으로부터 가져옴
try {
server = new ServerSocket(9999); //포트를 넣어서 서버 소켓만들기
System.out.println("연결 대기 중...."); //서버가 띄어져있어도 구분할 수 없으므로
socket = server.accept();
System.out.println("연결 되었습니다.");
in = new BufferedReader(new InputStreamReader(socket.getInputStream())); //읽어올 준비 - socket으로부터 받아옴
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); //쓸 준비
while(true) { // bye가 나올때까지
String inMsg = in.readLine();
if(inMsg.equalsIgnoreCase("bye")) { //equalsIgnoreCase : 대소문자 무시하고 철자 맞기만 하면 됨
System.out.println("클라이언트가 나갔습니다.");
break;
}
// 정상 메시지인 경우
System.out.println("클라이언트 : " + inMsg);
System.out.print("보내기 >>");
String outMsg = sc.nextLine(); //공백이 있어도 쓸 수 있음 , next면 공백 있으면 난리남
out.write(outMsg + "\n");
out.flush(); // 정상적으로 날라감
}
} catch (IOException e) { //포트가 열리지 않을 경우 (정상적인 포트가 아닐 경우)
e.printStackTrace();
} finally { // 만들어논 순서의 역순으로 닫아야 함
try {
sc.close();
out.close();
in.close();
socket.close();
server.close();
} catch (IOException e) { // colse하다가 오류 생길 경우
e.printStackTrace();
}
}
}
}
// 클라이언트
package swing.chat;
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;
import java.util.Scanner;
public class ClientEx {
public static void main(String[] args) {
// 클라이언트는 서버가 필요 없음
Socket socket = null; //소켓
BufferedReader in = null; //입력용
BufferedWriter out = null;//출력용
Scanner sc = new Scanner(System.in); //콘솔창으로부터 가져옴
try {
socket = new Socket("localhost", 9999);
in = new BufferedReader(new InputStreamReader(socket.getInputStream())); //읽어올 준비 - socket으로부터 받아옴
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); //쓸 준비
while(true) { // bye가 나올때까지
System.out.print("보내기 >>");
String outMsg = sc.nextLine(); //공백이 있어도 쓸 수 있음 , next면 공백 있으면 난리남
if(outMsg.equalsIgnoreCase("bye")) { //equalsIgnoreCase : 대소문자 무시하고 철자 맞기만 하면 됨
out.write(outMsg + "\n");
out.flush();
break;
}
// 정상 메시지인 경우
out.write(outMsg + "\n");
out.flush(); // 정상적으로 날라감
String inMsg = in.readLine();
System.out.println("서버 >> : " + inMsg);
}
} catch (IOException e) { //포트가 열리지 않을 경우 (정상적인 포트가 아닐 경우)
e.printStackTrace();
} finally { // 만들어논 순서의 역순으로 닫아야 함
try {
sc.close();
out.close();
in.close();
socket.close();
} catch (IOException e) { // colse하다가 오류 생길 경우
e.printStackTrace();
}
}
}
}
'Programming > JAVA' 카테고리의 다른 글
| 명품자바에센셜 2장 이론문제 (0) | 2021.07.14 |
|---|---|
| [Java] 스레드 종료 (0) | 2021.07.07 |
| [JAVA] DB메소드, 로그인 창 (0) | 2021.05.30 |
| [JAVA] Oracle 삽입, 삭제, 수정, 조회 (0) | 2021.05.30 |
| [JAVA] 이미지아이콘 크기 조절 (0) | 2021.05.21 |
