본문 바로가기
2022-2/자바

[자바] 네트워크

by 철없는민물장어 2022. 12. 17.
728x90
반응형

 

서버 코드

package networkEx;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerEx {

	public static void main(String[] args) {

		try {
			ServerSocket ss=	new ServerSocket(8888);
			Socket server=ss.accept();
			
			InputStream in =server.getInputStream();
			OutputStream out = server.getOutputStream();
			byte[] arr=new byte[100];
			
			in.read( arr);
			System.out.println(new String(arr));
			
			String str="server~";
			out.write(str.getBytes());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
				
	}

}

서버는 소켓을 생성한다.

 

클라이언트 

package networkEx;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class ClientEx {

	public static void main(String[] args) {

		Socket client=null;
		try {
			client=new Socket("localhost",8888);
			OutputStream os=client.getOutputStream();
		
			InputStream is=client.getInputStream();
			
			String str="client";
			os.write(str.getBytes());
			
			byte[] arr=new byte[100];
			is.read(arr);
			System.out.println(new String(arr));
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				client.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}

}

 

이 두 파일을 컴파일 한 후

 

 

서버프로그램을 실행시키면 클라이언트가 연결될때까지 기다리고 있는다.

 

새로운 창을 하나 더 켜서 클라이언트를 실행시키면

서버는 클라이언트로부터 "client" 라는 메세지를 받아 출력하고

클라이언트는 서버로부터 "server~"라는 메세지를 받아 출력한다.

 


응용해서 보낼 메세지를 입력하고 받을수도 있다.

더보기

그냥 str을 scanner를 이용하여 nextLine()으로 받아 사용함.

728x90
반응형

'2022-2 > 자바' 카테고리의 다른 글

[자바] 스레드와 멀티태스킹  (0) 2022.12.18
[자바] 제네릭과 컬렉션  (0) 2022.12.18
[자바] ArrayList<클래스> 형의 정렬방법  (0) 2022.12.12
[자바] 멀티스레드, synchronized  (0) 2022.12.01
[자바] Vector  (0) 2022.12.01

댓글