간단한 네트워크 채팅 프로그램 코 틀린

이것은 간단한 채팅 프로그램 소켓을 기반으로 완성 코 틀린 언어입니다

소켓의 코 틀린 사용 :

소켓을 작성합니다 :

수동 모니터링 : 변수 호스트 포트 번호, 클라이언트는 소켓입니다

발 서버 = ServerSocket의 (호스트) 
발 클라이언트 = server.accept ()

이니셔티브 보낼 : 변수 mHost는 IP 주소, MPORT는 포트 번호입니다

발 소켓 = 소켓 (mHost, MPORT)

자바 코 틀린 송신 및 소켓을 통해 수신 된 스트림 데이터를 조작 할

출력 스트림을 획득하고, 스트림 데이터가 기록 된 송신 (sc.nextLine () encodeToByteArray하면 () 입력 라인을 얻을 수 있고 바이트로 변환).

로 getOutputStream (). 쓰기 (sc.nextLine (). encodeToByteArray ())

기록 데이터 바이트 어레이로 입력 스트림을 획득 (BTS하는 ​​바이트 배열)

는 getInputStream (). (BTS)을 읽는

두 프로그램이 작동 및 코드 :

main.kt :

0을 입력 한 후받는 사람 모드를 입력을 시작합니다 

메시지는 응답 메시지 및받는 사람 모드에서 수신 될 수

1 전송 방식으로 입력되고

보낸 사람은 지정된 IP 주소 모드로 메시지를 보낼 수 있습니다

1을 입력 한 후 목적지 IP 주소를 입력해야합니다

java.util의 클래스 * 가져 오기. 

발 SC = 스캐너 (System.`in`)
재미 주 () {
println 메소드 (
"모드를 선택하십시오 : \ N-"+
"0 모드 수신기 ()를 받고 메시지를 회신 할 수 있습니다 \ N-"+
" 발신자 모드 1 (메시지를 보내고 응답을받을 수 있습니다 "
)
때 (sc.nextInt ()) {
0 -> {
sc.nextLine ()
println 메소드 ("모드 "는받는 사람을 입력했다)
리스너 (4096)
}
1 -> {
에 println은 ( "목적지는 IP를 입력")
sc.nextLine ()
스피커 (sc.nextLine ())
}
}
}

보낸 사람 모드 Speaker.kt

반복 읽기, 대상 소켓, 쓰기 키보드 입력을 생성하고 응답주기 작업을 인쇄하려면

방법 (문자열)를 송신하고 응답 시간 문자열을 인쇄하면

초기화 과정은 일단 전화로 메시지를 보낼 여러 번 반복

수입 java.net.Socket의 

클래스 스피커 (호스트 : 문자열 = "127.0.0.1", 포트 = 4096 INT) {
개인 발 mHost = 호스트
민간 발 MPORT = 포트
개인 발에 메가 바이트 =이 ByteArray (1024)
개인 재미 (문자열 회 : 문자열 = "你好") {
시도 {
소켓 (mHost, MPORT) .apply {
로 getOutputStream (). 쓰기 (string.encodeToByteArray ())
는 getInputStream (). 읽기 (메가 바이트)
에 println (문자열 (메가 바이트))
닫기 ()
}
} 캐치 (예 : 예외) {
에 println (예)
던져 전자
}
}

초기화하기 {
에 println ( "已进入发送者模式")
시도 {
동안 (사실) {
번 (sc.nextLine ())
}
} 캐치 (예 : 예외) {
}
}
}

수신기 모드 Listener.kt

출력 스트림 전송에 입력 스트림을 인쇄 한 후 키보드 입력을 읽고, 소켓 반복 청취 만들기

방법 (문자열)를 송신하고 응답 시간 문자열을 인쇄하면

초기화 과정은 일단 전화로 메시지를 보낼 여러 번 반복

java.net.ServerSocket의 가져 오기 

클래스 리스너 (주최 : INT) {
개인 발 = ServerSocket의 서버 (호스트)
개인 BTS 발 = 들일 ByteArray (20480)

초기화 {
스레드 {
(true로)을하면서 {
. server.accept () {적용
는 getInputStream ()를 .read (BTS)
println 메소드 (문자열 (BTS))
로 getOutputStream () 쓰기 (sc.nextLine () encodeToByteArray ().).
}
}
} .start ()
}
}

절차의 결과를 보여줍니다 :
(녹색 키보드 입력)
보낸 사람 :

J

추천

출처www.cnblogs.com/Miliapus/p/12024809.html