>Java >java지도 시간 >Java 네트워크 프로그래밍: 다중 스레드 채팅 구현

Java 네트워크 프로그래밍: 다중 스레드 채팅 구현

王林
王林앞으로
2023-04-22 12:31:071725검색

해결책:

두 개의 서로 다른 스레드에 보내고 받기를 보냅니다

1. SendThread가 메시지 스레드를 보냅니다
2. RecieveThread가 메시지 스레드를 받습니다
3. . 클라이언트 연결이 설정되면 보내고 받기 위한 두 개의 스레드가 시작됩니다.

package socket;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

public class SendThread extends Thread {
    private Socket s;
    public SendThread(Socket s) {
        this.s = s;
    }
    @Override
    public void run() {
        try {
            OutputStream os = s.getOutputStream();
            DataOutputStream dos = new DataOutputStream(os);
            while(true){
                Scanner sc = new Scanner(System.in);
                String str = sc.next();
                dos.writeUTF(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
클라이언트

package socket;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;

public class RecieveThread extends Thread {
    private Socket s;
    public RecieveThread(Socket s) {
        this.s = s;
    }
    @Override
    public void run() {
        InputStream is = null;
        try {
            is = s.getInputStream();
            DataInputStream dis = new DataInputStream(is);
            while(true){
                String msg = dis.readUTF();
                System.out.println(msg);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

위 내용은 Java 네트워크 프로그래밍: 다중 스레드 채팅 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제