살다보면
모든 환경에서 쓸일이 있다... -_-...
EchoServer.java 파일(1024 포트 사용 예)
import java.io.* ; import java.net.* ; class EchoServer { public static void main( String[] args ) throws IOException { // 포트 설정 int port = 1024 ; // 서버 소켓 생성 ServerSocket ss = new ServerSocket(port) ; System.out.println( "Server Ready" ) ; // 클라이언트 연결을 계속해서 받는다. while( true ) { // 클라이언트 연결을 받는다. Socket client = ss.accept() ; // 네트워크 입출력 스트림 설정 BufferedReader net_in = new BufferedReader( new InputStreamReader( client.getInputStream() ) ) ; PrintWriter net_out = new PrintWriter( new OutputStreamWriter( client.getOutputStream() ) ) ; System.out.println( "Client Socket Accepted" + client ) ; System.out.flush() ; // 클라이언트의 데이터를 받는다. String line ; line = net_in.readLine() ; // 받은 데이터를 다시 전송한다. net_out.println( line ) ; net_out.flush() ; } } } |
EchoClient.java 파일 내용
import java.io.* ; import java.net.* ; class EchoClient { public static void main( String[] args ) throws IOException { // 접속 대상 설정 String host = "127.0.0.1" ; int port = 1024 ; // 소켓을 생성 Socket s = new Socket( host , port ) ; System.out.println( "Client Socket Created" + s ) ; System.out.flush() ; // 네트워크 통신을 위한 스트림 설정 Reader from_server = new InputStreamReader(s.getInputStream()) ; PrintWriter to_server = new PrintWriter(new OutputStreamWriter(s.getOutputStream()) ) ; // 콘솔 입출력을 위한 스트림 설정 BufferedReader from_user = new BufferedReader( new InputStreamReader( System.in ) ) ; PrintWriter to_user = new PrintWriter( new OutputStreamWriter( System.out ) ) ; // 사용자의 입력을 받는다. String line ; while( (line = from_user.readLine()) != null ) { // 받은 입력은 네트워크로 전송한다. to_server.println( line ) ; to_server.flush() ; // 네트워크에서 데이터를 받는다. int char_cnt ; char[] buffer = new char[1024] ; char_cnt = from_server.read(buffer) ; // 받은 데이터를 화면에 뿌린다. to_user.write( buffer , 0 , char_cnt ) ; to_user.flush() ; } } } |
특정 서버에 대한 포트 스캔 프로그램 (PortScanner.java)
import java.net.*; public class PortScanner { public static void main(String args[]) { int startPortRange=0; int stopPortRange=0; startPortRange = Integer.parseInt(args[0]); stopPortRange = Integer.parseInt(args[1]); for (int i=startPortRange; i <=stopPortRange; i++) { try { Socket ServerSok = new Socket("127.0.0.1",i); System.out.println("Port in use: " + i ); ServerSok.close(); } catch (Exception e) { } System.out.println("Port not in use: " + i ); } } } |
'Language > JAVA' 카테고리의 다른 글
자바 메모리 분석 (0) | 2020.05.13 |
---|---|
처음 배우는 스프링 부트 2 (build.gradle) (2) | 2020.04.29 |
Java 성능 모니터링에 대해 모르고 있던 5가지 사항, Part 1 (0) | 2012.05.02 |
개발자의 실수를 줄여주는 java.sql.Connection 만들기(퍼옴) (0) | 2012.04.20 |
엑셀 대용량 다운로드 가능하게 자바 만들기 (0) | 2012.04.05 |