Socket & Tread를 이용하여 1대1 채팅 프로그램 만들기
Socket & Tread를 이용하여 java로 만든 console에서 작동하는 채팅 프로그램입니다.
Server와 Client를 하나씩 만들어주고, Server와 Client가 서로 대화할 수 있습니다.
Read용 Tread를 하나 만들고, Write용 Tread를 하나 만들어 사용합니다.
ChatServer
package ChattingOneByOne;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class ChatServer {
public static void main(String[] args) {
// 서버 소켓
ServerSocket serverSocket;
InputStream inputStream;
InputStreamReader reader;
BufferedReader br;
OutputStream outputStream;
PrintStream printStream;
try {
// 80번 포트로 서버 실행
serverSocket = new ServerSocket(80);
// 클라이언트가 접속하면 접속을 허용하는 코드
// clientSocket에 클라이언트와의 연결 정보 저장
Socket clientSocket = serverSocket.accept();
outputStream = clientSocket.getOutputStream();
printStream = new PrintStream(outputStream);
inputStream = clientSocket.getInputStream();
reader = new InputStreamReader(inputStream, "UTF-8");
br = new BufferedReader(reader);
ReadThread readThread = new ReadThread(br);
readThread.start();
WriteThread writeThread = new WriteThread(printStream);
writeThread.start();
System.out.print("채팅이 시작되었습니다\n");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
ChatClient
package ChattingOneByOne;
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
public class ChatClient {
public static void main(String[] args) {
Socket clientSocket;
InputStream inputStream;
InputStreamReader reader;
BufferedReader br;
OutputStream outputStream;
PrintStream printStream;
try {
clientSocket = new Socket("192.168.0.19", 80);
outputStream = clientSocket.getOutputStream();
printStream = new PrintStream(outputStream);
inputStream = clientSocket.getInputStream();
reader = new InputStreamReader(inputStream, "UTF-8");
br = new BufferedReader(reader);
ReadThread readThread = new ReadThread(br);
readThread.start();
WriteThread writeThread = new WriteThread(printStream);
writeThread.start();
System.out.print("채팅이 시작되었습니다\n");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
ReadThread
package ChattingOneByOne;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class ReadThread extends Thread{
BufferedReader br;
public ReadThread(BufferedReader br2) {
br = br2;
}
@Override
public void run() {
try {
while(true) {
String result;
result = br.readLine();
System.out.println(result);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
WriteThread
package ChattingOneByOne;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class WriteThread extends Thread{
PrintStream printStream;
public WriteThread(PrintStream printStream2) {
printStream = printStream2;
}
public void run() {
Scanner sc = new Scanner(System.in);
while(true) {
String message;
message = sc.nextLine();
printStream.println(message);
}
}
}
https://joygotohome.tistory.com/71
Socket & Thread를 활용하여 다중 채팅 프로그램 만들기 - java
Socket & Thread를 활용하여 채팅 프로그램 만들기 소켓과 스레드를 활용하여 java로 만든 console에서만 출력되는 채팅프로그램 입니다.기본 문법만 사용하여 만든것으로 Socket과 Tread 사용해
joygotohome.tistory.com
1대1 채팅을 발전시켜 만든 다중 채팅프로그램
'JAVA > 기타' 카테고리의 다른 글
[JAVA] 카카오페이 결제 API 포트원 연동 - kakao pay (0) | 2024.07.22 |
---|---|
[java] 카카오톡 로그인 연결하기 (2) | 2024.06.27 |
[java] MVC - Spring Boot 어노테이션 정리 (0) | 2024.06.21 |
[java] 스프링(Spring) , 스프링 부트(Spring Boot)란? (0) | 2024.06.20 |
[java] Socket & Thread를 활용하여 다중 채팅 프로그램 만들기 (0) | 2024.05.29 |