2009-08-30 3 views
3

소켓 연결을 위해 포트에서 수신 대기하는 서블릿과 함께 웹 애플리케이션을 구현하려면 어떻게해야합니까?소켓 연결을 구현하는 서블릿

+1

btw, 원격 클라이언트는 어떤 언어로 작성됩니까? 원격 클라이언트에서 Java를 사용하는 경우 RMI 또는 원격 EJB 호출을 사용하는 것이 더 좋습니다. –

+0

예! 클라이언트는 Java로 작성됩니다. –

답변

3

당신은 서블릿 컨테이너로 무료로 얻을 수있는 프론트 도어 HTTP 연결을 의미하지 않는다고 가정합니다.하지만 관리 서비스를 추가하려면 리스너 스레드를 생성하여 서블릿의 일부 전역 상태. 이것은 정결 한 것으로 간주되지 않습니다 (그리고 서블릿 표준을 위반할 수도 있습니다).

+0

원격 클라이언트가 있고 HTTP 대신 TCP 소켓을 사용하여 내 서버에 연결하는 것을 원하지 않으므로 내 서블릿에서 일종의 serverSocket을 만들고 소켓 연결에 대한 클라이언트 요청을 수신 대기하고 싶습니다. –

+2

서블릿은 매우 구체적으로 HTTP 표준입니다. HTTP를 원하지 않으면 서블릿을 사용하지 말아야합니다. Helen이 말하는 것처럼 커스텀 클라이언트/서버 애플리케이션을 작성하십시오. – Greg

+1

편집 : Helen & Vineet이 제안한대로. 신용이 만기가되는 신용 ... :-) – Greg

2

달성하고자하는 것이 무엇인지 확실하지 않지만 필요한 경우 client/server programming을 볼 수 있습니다. 그 외에는 웹 응용 프로그램을 정상적으로 구현할 수 있지만 필요에 따라 기본 포트를 변경하십시오.

+0

Greg에게 필자의 글을 참고하면 클라이언트/서버 프로그래밍과 비슷한 것이 필요하지만 서블릿으로 구현하거나 다른 방법을 사용해야 할 수도 있습니다. –

5

Servlet을 열면 ServerSockets가 잘못된 코드의 냄새가납니다. 이는 주로 소켓을 관리하는 컨테이너의 책임이기 때문에 (작업자 스레드, 세션 등과 같은 다른 리소스 중에서).

그런데, 나는 처음에는 서블릿이 필요 없다고 생각했다. J2SE 응용 프로그램을 사용하여 ServerSockets를 관리하는 것이 컨테이너의 일부 서비스에 액세스하지 않는 한 더 좋을 것입니다.

+0

그럼 구현하려면 어떻게해야합니까? 모든 코드 예제? 위에 게시 된 클라이언트/서버 예제를 살펴 보았습니다. 그게 갈 길이야? –

+1

"It Depends !!". J2EE/JEE 컨테이너가 기본적으로 제공하는 것과 관련이있는 것이 아니라면 J2SE를 사용하는 서버 응용 프로그램을 작성하는 것이 쉽습니다. 트랜잭션 관리, 상태 관리, 스레드 풀 등을 처리해야하는 경우 HTTP 기반 메시지 교환 형식을 살펴보고 서블릿을 사용하십시오. 결국, 그것은 당신이 당신의 서버가 필요로하는 것에 의존합니다. –

관련 문제