-
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 {@Overridepublic void run() {// TODO Auto-generated method stubDatagramSocket 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 stubThread t1 = new Thread(new Chat_Send2());Thread t2 = new Thread(new Chat_Receive2());t2.start();t1.start();}}쓰레드를 이용한 채팅방입니다.
오고 나가는 포트번호가 동일해야 하며
본인이 보내는 포트가5000인데 받는 포트도 5000이면 안되므로
보내는 포트는 5000 받는 포트는 5001로 하고
상대방이 보내는 포트는 5001 받는 포트는 5000으로 설정하면 되겠습니다.
쌍방향 통신이 이뤄지며
종료라고 입력받을 시 프로그램이 종료됩니다
반응형'삼성SDS_멀티캠퍼스 > Java' 카테고리의 다른 글
21일 차 TCP단체 채팅방(서버와 클라이언트) (0) 2015.10.07 20일 차 TCP통신 (0) 2015.10.06 19일 차 소켓 통신 (0) 2015.10.05 18일 차 도서대여 프로그램 완벽한 저장 (0) 2015.10.02 18일 차 객체의 입출력 (0) 2015.10.02