inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Java TPC 실전프로젝트 (Java API 활용)

Socket(소켓)을 이용한 Multi-Chatting 만들기

스레드 관련 질문입니다.

192

Anfield

작성한 질문수 12

0

자바 문법 관련 질문입니다. 

 

1.

서버  클래스에는 inner Class로 스레드를 상속한 ServerReceiver 클래스가 만들어 집니다. 이 클래스를 

ServerReceiver thread = new ServerReceiver(socket);을 하고 thread.start(); 해서 실행시킵니다. 

 

채팅 클래스에서는 inner Class에 static이 붙습니다. 이 차이가 무엇인지? 

 

2.

채팅클래스 관련. 

주고 받고 하는 두 개의 스레드를 start()(==run()) 메서드를 실행시킬 때

Thread sender = new Thread(new ClientSender(socket,name));

Thread receiver = new Thread(new ClientReceiver(socket));

sender.start();

receiver.start();

이전에 서버 클래스에서는 ServerReceiver thread = new ServerReceiver(socket); 이런식으로 호출을 해서 사용했습니다. 

Thread를 상속했기에 Thread로 받을 수 있다는 점은 이해했으나

ClientSender sender=new ClientSender(socket,name);

ClientSender receiver =new ClientSender(socket);

이렇게 해도 되는 부분이 아닌지? 궁금합니다~

 

3. 

클라이언트에서는 메인 클래스에서 실행되는 반면에 서버 클래스는 메인에서 자기 자신의 클래스를 호출하여 메서드를 실행시킵니다. 

public static void main(String[] args) {

new Project06F_MultiChatServer().start();

}

이 start()메서드 안에서 이전에 질문했었던 (static이 붙지 않은)Inner class를 호출합니다. 

이 부분도 메인  메서드에서 굳이 자기 자신을 new로 호출해서 메서드를 실행시키는 이유가 궁금합니다. 

 

4.

그리고 

Project06F_MultiChatServer 변수 = new Project06F_MultiChatServer();

변수.start(); 이렇게 하지 않아도 되는 이유도 궁금합니다. 

 

사실 1번과 2번 질문이 이어지는 질문인거 같기는 하지만 일단 모르는 부분이기에 질문드립니다. 

java oop

답변 0

cmd창.. 인텔리제이 소켓만들기 (실습)

0

184

2

Gson

0

160

1

JSON API 활용하기(JSON-Java)

0

340

2

질문있습니다

0

270

1

질문있습니다.

0

219

1

강의 들으면서 잘 안되는 부분이 있어서요~

0

355

1

지도가 나오지 않아요

0

367

1

Gson 라이브러리 추가시 오류

0

1821

1

아래 소스의 차이가 뭘까요?

0

318

1

선생님 javaTPC API편 PDF파일이 안보여서요~

0

346

1

cmd에서 프로그램 실행 실패

0

524

1

TPC강의 모두 수강 후 현재 실전프로젝트 강의중 질문입니다.

0

276

1

BookDTO 생성자 질문

0

364

1

A instance of B의 작동원리가 궁금합니다!

0

293

1

채팅관련 질문입니다

1

421

0

cmd창 경로

0

337

1

connect 할 때 post 방식

0

281

0

JSONTokener 에러

0

352

1

Project03_A > rows.next 질문드립니다.

0

223

0

InputStream is = Project01_C.class.getResourceAsStream(src) 경로에 대해서

0

341

1

JSONObjct를 쓰는 이유 ??

1

295

1

지도 api 프로젝트 코드 문의

0

386

3

오류: 기본 클래스 Project06A_Server.class을(를) 찾거나 로드할 수 없습니다.

0

556

1

new 객체생성 자동완성 로딩 오류

0

526

1