새 소켓이 구성되지 않은 경우, 즉 새로운 연결이없는 경우 server.accept()
메서드가 반환하는 것은 무엇입니까? sever.accept()
이 새로운 연결을 기다리는 동안 코드의 다음 줄로 갈 수 있습니까?연결을 기다리는 동안 server.accept()의 반환 값
0
A
답변
0
서버가 연결을 기다리는 동안 무언가를하고 싶다면 여러 스레드를 사용할 수 있습니다. 단일 스레드 응용 프로그램에서는 함수를 호출하고 반환을 기다리지 않고 작업을 계속할 수 없습니다. 서버가 연결을 수락하기를 기다리고 있거나 다른 계산을 수행하고 있습니다.
스레드 대신 가능한 방법은 서버 소켓에 the SO_TIMEOUT
socket option을 설정하는 것입니다. 이렇게하면 accept
에 대한 호출이 제한 시간 내에 연결을받지 못하면 예외를 throw하여 다음 줄로 이동할 수 있습니다. 예를 들어
:
ServerSocket ss = new ServerSocket(8989);
ss.setSoTimeout(10000); // 10 seconds
Socket clientSocket;
try {
clientSocket = ss.accept();
// process connection from client
} catch (SocketTimeoutException ste) {
// connection was not received,
// do something else
}
또 다른 대안은 비 차단 IO와 Selector
클래스를 사용하고 있습니다. 이런 식으로 작성된 example of a non-blocking socket server입니다.
0
아니요. server.accept()는 차단 방법이며 기다릴 것입니다. javadoc
에서
는 연결이 소켓에 대한 요구를 대기 해, 그것을받습니다. 메서드는 연결될 때까지 차단합니다.
관련 문제
- 1. while 루프에서 연결을 기다리는 동안 Runnable 중지
- 2. Redis 연결을 기다리는 방법?
- 3. 저장하는 동안 BackBone.js에 값 반환
- 4. 연결을 기다리는 적절한 방법은 무엇입니까?
- 5. 서버에서 데이터를 기다리는 동안 휴면 상태에 소켓 연결을 넣으십시오.
- 6. 응답을 기다리는 동안 블록 기능
- 7. 블로킹 액션을 기다리는 동안 무언가를하십시오.
- 8. 들어오는 연결을 기다리는 Java 스레드를 인터럽트하는 방법
- 9. 아약스 전화를하는 동안 기다리는 방법?
- 10. 기다리는 동안 CountDownLatch 예외가 발생합니다.
- 11. 약속을 기다리는 동안 AngularJS보기 전환
- 12. 기다리는 동안 System.Threading.Timer가 스레드를 소비합니까?
- 13. 기다리는 동안 무언가를하는 멀티 스레딩
- 14. 안드로이드에서 로컬로 인터넷 연결을 기다리는 캐시 데이터
- 15. ConnectionPoolTimeoutException : 풀에서 연결을 기다리는 시간 초과.
- 16. 비동기 소켓에서 연결을 기다리는 것이 가능합니까?
- 17. Perl의 작업자가 퓨처를 기다리는 연결을 처리하지 않습니다.
- 18. org.apache.http.conn.ConnectionPoolTimeoutException : 풀에서 연결을 기다리는 시간 초과.
- 19. 현재 대상 연결을 사용하는 동적 SQL 문 반환 값
- 20. ajax 콜백을 기다리는 동안 javascript를 실행하는 방법
- 21. 반환 작업의 반환 값
- 22. 뮤텍스를 기다리는 동안 pthread가 죽으면 어떻게됩니까?
- 23. HttpRespons를 기다리는 동안 ProgressDialog를 표시하는 방법?
- 24. 반환 값
- 25. 반환 값
- 26. 반환 값
- 27. 반환 값
- 28. 반환 값
- 29. 반환 값
- 30. 반환 값
차단 모드에서는 * 반환하지 않습니다. – EJP