\

해병 코딩

728x90
반응형

2021.03.29 - [JAVA/JAVA(자바)설치 및 툴 이용(ECLIPSE)] - [JAVA] 자바 설치 및 환경 하기 JDK 1.8 버전

 

[JAVA] 자바 설치 및 환경 하기 JDK 1.8 버전

www.oracle.com/kr/java/technologies/javase/javase-jdk8-downloads.html 위 링크 클릭 하면 여기로 온다 각자의 환경에 맞게 설치 하자 나는 윈도우 64 비트 그전 오라클 로그인 필수 1. 다운로든 된거를 실행..

marine1188.tistory.com

개발 환경

Window 10 

JDK 1.8

이클립스 2020_03 버전


체팅을 하기 위해서는 체티을 처리할 서버와 사용자를 생성 해야한다 .

 

sever 만들기

서버 전체 코드

여기에 필요한 개념 

소켓 통신 개념 등등 

 

서버 콘솔 과 클라이언 콘솔 간의 체팅 되는 코드이고 

자신의 로컷에서 가능 하다 

tcp 통신이기때문에 네트워크 공유된는 곳에서는 다른 pc도 접속이 가능하다.

package ex04.net.tcp;
import java.io.*;
import java.net.*;
public class ServerEx {
	public static void main(String[] args) {
		BufferedReader br = null, stin = null;
		BufferedWriter bw = null;
		//소켓
		ServerSocket server = null;
		Socket client = null;
		
		System.out.println("연결됨 ... 나는 서버야!!");
		try {
			server = new ServerSocket(9999);
			client = server.accept();
			br = new BufferedReader(new InputStreamReader(client.getInputStream()));
			//키보드로 부터 입력스트림
			stin = new BufferedReader(new InputStreamReader(System.in));
			//클러이언트의 출력 스트림
			bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
			String inputMessage;
			
			while(true) {
				inputMessage = br.readLine();//클라이언트에서 한행으 문자열 읽음
				///클라이어트가 "exit"를 보내면 연결 종료
				if(inputMessage.equalsIgnoreCase("exit"))break;
				//클라이언트가 보낸메세지 화면 출력
				System.out.println(inputMessage);
				//키보드에서 한 행의 문자열 읽음
				String outputMessage = stin.readLine();
				//키보드에서 읽은 문자열 전송
				bw.write("marine 서버"+" "+ outputMessage+"\n");
				bw.flush();
			}
			
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}finally {
			try {	client.close();  server.close();	 } 
			catch (IOException e) {	System.out.println("클라이언트와 채팅 중 오류 발생.....");	}
		}
	}
}

 

package ex04.net.tcp;

import java.net.*;
import java.io.*;

public class ClientEx {
	public static void main(String[] args) {
		BufferedReader br = null, stin = null;
		BufferedWriter bw = null;
		Socket client = null;
		
		try {
			client = new Socket("127.0.0.1", 9999);   // 127.0.0.1  or 192.168.20.26
			br = new BufferedReader(new InputStreamReader(client.getInputStream()));
			stin = new BufferedReader(new InputStreamReader(System.in));
			
			bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
			
			String outputMessage;
			while(true) {
				System.out.println("message input : ");
				outputMessage = stin.readLine();
				
				if( outputMessage.equalsIgnoreCase("exit")) {
					bw.write(outputMessage);
					bw.flush();
					break;
				} // end if
				
				//키보드로부터 읽은 문자열 전송
				bw.write("Client > " + outputMessage + "\n");
				bw.flush();
				
				String inputMessage = br.readLine();
				System.out.println(inputMessage);
			} // end while
		} catch (Exception e) {
			System.out.println(e.getMessage());
		} finally {
			try {	client.close(); } 
			catch (IOException e) {	System.out.println("Server 와 채팅 중 오류 발생.....");	}
		}
	}
}    

 

 

서버를 먼저 실행 한다

그리고 클이언 실행 한다 

여기서 중요한거는 

한 콘솔에서 대화가 되는것이 아니이기 때문에 유의 하자 

콘솔 왔다리 갔다리하면 주고 받고 가능 하다 

1:1 체팅 만된다

 

클라이언트 콘솔

서버 콘솔


728x90
반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band