반응형
예외처리 ( Try Catch )
public class ExceptionTest {
// 예외처리 .. 중간에 멈추지 않게 하기 위해서
// try catch 문 사용빈도 줄이기 위해 throws
public static void main(String[] args) throws ArrayIndexOutOfBoundsException{
int[] arr = { 1, 2, 3, 4 };
for (int i = 0; i < 5; i++) {
try { // 예외 발생 예상 환경
System.out.println(arr[i]);
// 에러 발생한 순간 아래 문장 실행이 아니라 catch 로 이동
System.out.println("Test"+i);
} catch (ArrayIndexOutOfBoundsException e) { // 예외처리
// 에러 메세지
System.out.println("Exception");
// 다중 캐치문 ... 최종 오류 대장 Exception
// 예상 불가한 오류 > Exception class
} catch (Exception e) {
// 다른걸 잡을 수 도 있기 때문에 Exception 은 trycatch 맨 아래에
}
// 예외 발생하던 말던 동작해야 하는 부분
finally {
System.out.println("Test" + i);
}
}
System.out.println("end");
}
}
.
Network
TCP 통신을 주고 받는 방식 > 신뢰도 향상 ... 채팅프로그램
UDP : 일방적인 통신 > 빠른 속도 ... 대용량 자료 통신
... IN JAVA
import java.net.*;
public class InterAddressEx {
public static void main(String[] args) throws UnknownHostException {
InetAddress iaddr = InetAddress.getLocalHost();
System.out.printf("호스트 이름 : %s \n", iaddr.getHostName());
System.out.printf("호스트 ip 주소 : %s \n", iaddr.getHostAddress());
iaddr = InetAddress.getByName("java.sun.com");
System.out.printf("호스트 이름 : %s \n", iaddr.getHostName());
System.out.printf("호스트 ip 주소 : %s \n", iaddr.getHostAddress());
InetAddress sw[] = InetAddress.getAllByName("www.naver.com");
for (InetAddress temp_sw : sw) {
System.out.printf("호스트이름 : %s \n", temp_sw.getHostName());
System.out.printf("호스트 ip 주소 : %s \n", temp_sw.getHostAddress());
}
}
}
스프링 - 이클립스 기반으로 진행
... 구글맵 ㅇㅠ
ServerSocket > 접속 전까지 무한루프 대기..
- 스트림 > 오직 한 방향으로만
닫혀도 사용할 수 있다 = static
accept() = listen -> return tcp socket
package day06;
// 버퍼 : 2인치 저장 메모리 공간
// 인풋,아웃풋 스트림 -> 버퍼에 담아 빠르게 포장
// while 무한루프 ... accept
import java.io.*;
import java.net.*;
public class EchoServer{
private BufferedReader bufferR;
private BufferedWriter bufferW;
private InputStream is;
private OutputStream os;
private ServerSocket serverS;
public EchoServer(int port){
try{
serverS = new ServerSocket(port);
}catch(IOException ioe){
ioe.printStackTrace();
System.exit(0);
}
while(true){
try{
System.out.println("클라이언트의 요청을 기다리는 중");
Socket tcpSocket = serverS.accept();
System.out.println("클라이언트의 IP 주소 : "+
tcpSocket.getInetAddress().getHostAddress());
is = tcpSocket.getInputStream();
os = tcpSocket.getOutputStream();
bufferR = new BufferedReader(
new InputStreamReader(is));
bufferW = new BufferedWriter(
new OutputStreamWriter(os));
String message = bufferR.readLine();
System.out.println("수신메시지 : "+ message);
message += System.getProperty("line.separator");
bufferW.write(message);
bufferW.flush();
bufferR.close();
bufferW.close();
tcpSocket.close();
}catch(IOException ioe){
ioe.printStackTrace();
}
}
}
public static void main(String[] args){
new EchoServer(3000);
}
}
...
package day06;
// 주의 : 서버 먼저 실행해야 함
// localhost 3000번 으로 접속
import java.io.*;
import java.net.*;
public class EchoClient {
private String ip;
private int port;
private String str;
BufferedReader file;
public EchoClient(String ip, int port) throws IOException {
this.ip = ip;
this.port = port;
Socket tcpSocket = getSocket();
OutputStream os_socket = tcpSocket.getOutputStream();
InputStream is_socket = tcpSocket.getInputStream();
BufferedWriter bufferW = new BufferedWriter( new OutputStreamWriter(os_socket));
BufferedReader bufferR = new BufferedReader( new InputStreamReader(is_socket));
System.out.print("서버 요청 : ");
file = new BufferedReader( new InputStreamReader(System.in));
str = file.readLine();
str += System.getProperty("line.separator");
bufferW.write(str);
bufferW.flush();
str = bufferR.readLine();
System.out.println("Echo Result : " + str);
file.close();
bufferW.close();
bufferR.close();
tcpSocket.close();
}
public Socket getSocket() {
Socket tcpSocket = null;
try {
tcpSocket = new Socket(ip, port);
} catch (IOException ioe) {
ioe.printStackTrace();
System.exit(0);
}
return tcpSocket;
}
public static void main(String[] args) throws IOException {
new EchoClient("localhost", 3000);
}
}
반응형
'강의정리들 > [2023] FullStack' 카테고리의 다른 글
[DB]230116_Mon (0) | 2023.01.16 |
---|---|
230101_Thu (0) | 2023.01.12 |
230101_Wed_1 (0) | 2023.01.11 |
230110_Tue (0) | 2023.01.10 |
230109_Mon (0) | 2023.01.09 |