ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 19일 차 Socket 통신으로 채팅방 만들기
    삼성SDS_멀티캠퍼스/Java 2015. 10. 5. 15:19
    반응형

    import java.io.IOException;

    import java.net.DatagramPacket;

    import java.net.DatagramSocket;

    import java.net.InetAddress;

    import java.util.Scanner;


    public class Chat_Send2 implements Runnable {


    boolean ex = true;


    @Override

    public void run() {

    // TODO Auto-generated method stub

    DatagramSocket socket = null;

    DatagramPacket packet = null;

    byte[] buf;

    Scanner scan = new Scanner(System.in);

    System.out.println("종료 라고 입력받으면 채팅이 종료됩니다");

    try {

    socket = new DatagramSocket();

    while (ex) {

    String msg = scan.nextLine();

    buf = msg.getBytes();

    packet = new DatagramPacket(buf, buf.length, InetAddress.getByName("70.12.115.108"), 5001);

    socket.send(packet);


    if (msg.equals("종료")) {

    System.out.println("채팅이 종료되었습니다");

    ex = false;

    System.exit(1);

    }

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    }


    }


    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;

    public class Chat_Receive2 implements Runnable {

    @Override
    public void run() {
    // TODO Auto-generated method stub
    DatagramSocket socket = null;

    try {
    socket = new DatagramSocket(5000);

    while (true) {
    byte[] data = new byte[1024];
    DatagramPacket packet = new DatagramPacket(data, data.length);
    socket.receive(packet);
    System.out.println(new String(data));

    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }


    public class Test {

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    Thread t1 = new Thread(new Chat_Send2());
    Thread t2 = new Thread(new Chat_Receive2());
    t2.start();
    t1.start();
    }

    }







    쓰레드를 이용한 채팅방입니다.




    오고 나가는 포트번호가 동일해야 하며


    본인이 보내는 포트가5000인데 받는 포트도 5000이면 안되므로



    보내는 포트는 5000 받는 포트는 5001로 하고


    상대방이 보내는 포트는 5001 받는 포트는 5000으로 설정하면 되겠습니다.



    쌍방향 통신이 이뤄지며


    종료라고 입력받을 시 프로그램이 종료됩니다






    반응형
Designed by Tistory.