Java 7일차 ServerSocket, Client 테스트 (소켓 채팅)

ServerSocketTest.java

import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class ServerSocketTest
{
public static void main(String[] args)
{
try
{
//데이터를 주고받는 소켓클래스 선언
Socket socket = null;
//네트워크로 다른 클라이언트의 데이터를 받기위해서 객체를 생성
ServerSocket server = new ServerSocket(9000);
//받기위한 준비
System.out.println("준비");
//클라이언트로부터 넘어온 소켓을 이용하여 데이터르 주고 받음
socket =server.accept();

Scanner sc = new Scanner(socket.getInputStream());
Scanner inputsc = new Scanner(System.in);
//데이터를 전송하기 위해서 outputstream 객체 생성
PrintWriter pw = new PrintWriter(socket.getOutputStream());

while(true)
{
//클라이언트로부터 데이터를 통해 넘온 값을 읽어드림
String data = sc.nextLine();
if(data.equals("bye"))break;
System.out.println("클라이언트로부터 받은 메세지 : "+data);

System.out.println("보낼 메시지를 작성");
String inputdata = inputsc.nextLine();

//데이터를 넘겨줌
pw.println(inputdata);
pw.flush();
}

pw.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

ClientTest.java

import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

public class ClientTest
{
public static void main(String[] args)
{
try
{
//서버에 접속하기 위한 객체
Socket client = new Socket("203.233.196.163", 9000);

Scanner sc = new Scanner(System.in);
//데이터를 전송하기 위해서 outputstream객체 생성
PrintWriter pw = new PrintWriter(client.getOutputStream());
Scanner inputsc = new Scanner(client.getInputStream());

while(true)
{
//서버에 보낼 데이터를 받음
System.out.println("보낼 메시지를 작성 하시오");
String data = sc.nextLine();
//데이터를 넘겨줌
pw.println(data);
pw.flush();

String redata = inputsc.nextLine();
if(redata.equals("bye"))break;
System.out.println("받은 메시지 : "+redata);
}

pw.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

댓글 없음: