2014-11-02 2 views
0

네트워킹 응용 프로그램 패키지를 만들어 채팅 응용 프로그램, 게임 등 네트워크 응용 프로그램을 쉽게 만들 수 있습니다. 서버 스레드에서 스레드를 차단하지 않고 항상 패킷을 찾을 수 있는지 궁금합니다. ?자바 네트워킹 - 스레드를 차단하지 않고 패킷을 찾으십니까?

예를 들어 멀티 플레이어 서버를 만들 때 서버가 서버를 알려주는 패킷을 찾고 있기 때문에 전체 서버를 차단하고 재생할 수 없기 때문에이 작업을 수행하고 싶습니다. 누군가가 연결하고있다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

별도의 스레드에 결합 탐지를 넣으시겠습니까?
또한, 하나의 응용 프로그램에서 몇 개의 스레드를 실행할 수 있습니까? 스레드의 양을 최대한 줄여야합니까? 4 개의 스레드가 너무 많습니까?

+0

연결 당 수락 스레드와 스레드가 있어야합니다. 10,000 스레드가되면 걱정할 시간입니다. 아마도. – EJP

+0

따라서 가입 요청을 수신 대기하는 하나의 스레드가있는 것이 좋습니다. –

+0

내가 말한 것. 소켓 당 하나의 스레드를 사용하는 것이 좋습니다. 어쩌면 두 가지가 있습니다 : 하나는 독서를위한 것이고 다른 하나는 작문을위한 것입니다. – EJP

답변

0

편집 : 별도의 스레드와 클래스에 조인 검색을 넣습니다. 그런 다음 조인 감지기가 활성화되어있는 동안 패킷을 검사하여 요청 목록에 추가했습니다. 그런 다음 서버 클래스에서 모든 업데이트, 조인 검색 클래스에 수집 된 요청이 있는지 확인했습니다.

이전에 오답으로 죄송합니다.

+0

정확히 무엇이 고정 되었습니까? 스레드를 차단하지 않는 문제가 해결 되었습니까? – EJP

+0

죄송합니다. 잘못된 질문에 답을 썼습니다. –

+0

이제 수정했습니다. –

관련 문제