Q&A

  • TClientSocket의 OnDisconnected시?
안녕하세요..



제가 만들고 있는 Application은 서버와 연결이 끊어지게 되면 10초마다



다시 연결을 시도하도록 하였습니다..



Server Application에 죽었을 경우, TClientSocket의 OnDisconnected Event에서



Timer Component를 10초로 하여 Enable 시키고 Timer Event가 발생했을때,



다시 소켓을 연결하도록하였습니다..



문제는..



Server Application에 죽었을 경우, TClientSocket의 OnDisconnected Evnt가



발생하게 되는데, 이때 socket의 connected property를 보면 True로 되어 있습니다..



그리고 서버측에서 netstat를 보면 fin_wait_2상태이구요..



그래서.. Timer Event가 발생하여 소켓을 연결하게 되면 이전의 소켓이 완전히



연결이 끊어지지 않은 것으로 되어 있어서 새로이 연결을 하지 못합니다..



그래서 OnDisconnected Event가 발생하면..



socket.connected property를 검사하여 True이면 socket.close를 하도록 시도해 봤습니다..



근데 이렇게 하니 stack overflow가 발생하는군요..



서버와 연결이 끊어지게 되면 소켓의 완전히 연결해제하고 10초후에



다시 연결을 재 시도하도록 하려 합니다..



좋은 답변 부탁드립니다..

3  COMMENTS
  • Profile
    이정욱 1999.05.07 17:09
    또하나 한델 자료실에 가보시면 ICS 최신버전이 있습니다...

    테스트 해보지는 못했지만 그것도 괜찬지 않을까 하는 생각이 듭니다.





    강신구 wrote:

    > 안녕하세요..

    >

    > 제가 만들고 있는 Application은 서버와 연결이 끊어지게 되면 10초마다

    >

    > 다시 연결을 시도하도록 하였습니다..

    >

    > Server Application에 죽었을 경우, TClientSocket의 OnDisconnected Event에서

    >

    > Timer Component를 10초로 하여 Enable 시키고 Timer Event가 발생했을때,

    >

    > 다시 소켓을 연결하도록하였습니다..

    >

    > 문제는..

    >

    > Server Application에 죽었을 경우, TClientSocket의 OnDisconnected Evnt가

    >

    > 발생하게 되는데, 이때 socket의 connected property를 보면 True로 되어 있습니다..

    >

    > 그리고 서버측에서 netstat를 보면 fin_wait_2상태이구요..

    >

    > 그래서.. Timer Event가 발생하여 소켓을 연결하게 되면 이전의 소켓이 완전히

    >

    > 연결이 끊어지지 않은 것으로 되어 있어서 새로이 연결을 하지 못합니다..

    >

    > 그래서 OnDisconnected Event가 발생하면..

    >

    > socket.connected property를 검사하여 True이면 socket.close를 하도록 시도해 봤습니다..

    >

    > 근데 이렇게 하니 stack overflow가 발생하는군요..

    >

    > 서버와 연결이 끊어지게 되면 소켓의 완전히 연결해제하고 10초후에

    >

    > 다시 연결을 재 시도하도록 하려 합니다..

    >

    > 좋은 답변 부탁드립니다..





  • Profile
    이정욱 1999.05.07 17:03
    델파이 버전이 4이십니까?

    그러면 서비스 패치를 하셨는지요?

    델파이안의 소켓이 버그가 조금있어서 패치를 하면 조금 낳아집니다.

    그것보단 DWinsock컴포넌트(세어웨어)를 구해서 사용하시는것도 괜찬을것 같네요.

    한델 자료실에 올려놓겠습니다.





    강신구 wrote:

    > 안녕하세요..

    >

    > 제가 만들고 있는 Application은 서버와 연결이 끊어지게 되면 10초마다

    >

    > 다시 연결을 시도하도록 하였습니다..

    >

    > Server Application에 죽었을 경우, TClientSocket의 OnDisconnected Event에서

    >

    > Timer Component를 10초로 하여 Enable 시키고 Timer Event가 발생했을때,

    >

    > 다시 소켓을 연결하도록하였습니다..

    >

    > 문제는..

    >

    > Server Application에 죽었을 경우, TClientSocket의 OnDisconnected Evnt가

    >

    > 발생하게 되는데, 이때 socket의 connected property를 보면 True로 되어 있습니다..

    >

    > 그리고 서버측에서 netstat를 보면 fin_wait_2상태이구요..

    >

    > 그래서.. Timer Event가 발생하여 소켓을 연결하게 되면 이전의 소켓이 완전히

    >

    > 연결이 끊어지지 않은 것으로 되어 있어서 새로이 연결을 하지 못합니다..

    >

    > 그래서 OnDisconnected Event가 발생하면..

    >

    > socket.connected property를 검사하여 True이면 socket.close를 하도록 시도해 봤습니다..

    >

    > 근데 이렇게 하니 stack overflow가 발생하는군요..

    >

    > 서버와 연결이 끊어지게 되면 소켓의 완전히 연결해제하고 10초후에

    >

    > 다시 연결을 재 시도하도록 하려 합니다..

    >

    > 좋은 답변 부탁드립니다..





  • Profile
    강신구 1999.05.07 18:42
    이정욱 wrote:

    > 델파이 버전이 4이십니까?

    > 그러면 서비스 패치를 하셨는지요?

    > 델파이안의 소켓이 버그가 조금있어서 패치를 하면 조금 낳아집니다.

    > 그것보단 DWinsock컴포넌트(세어웨어)를 구해서 사용하시는것도 괜찬을것 같네요.

    > 한델 자료실에 올려놓겠습니다.

    >

    >



    답변에 감사드립니다..



    저가 사용하는 델파이버젼은 4입니다..



    그리고 3번째 패치버젼까지 패치했구요..



    dwinsock컴포넌트를 찾으려고 해도 델파이4용은 못 찾겠습니다..



    괜찮으시다면 자료실에 올려 주실 수 있나요?



    부탁드립니다..

    • 정남용
    • 1999.05.07 19:45
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 하윤철
      1999.05.07 20:36
      정남용 wrote: > 문자를 입력받을때 > 마스크에디트를 사용하게 되면 일정한 형식으로 받을수 있는데... ...
    • 1999.05.07 19:59
      정남용 wrote: > 문자를 입력받을때 > 마스크에디트를 사용하게 되면 일정한 형식으로 받을수 있는데... ...
    • 정남용
      1999.05.07 20:08
      > 어떤 상황인지는 모르겠지만, > 보통 추가될때 그렇겠죠? > 그러면 table콤포넌트 이벤트에 보면 > In...
    • 이중현
    • 1999.05.07 19:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정재균
      1999.05.08 00:58
      생각보다 간단한 문제인것 같은데요.. 혹시 폼을 닫을때 Table을 Close하셨습니까..? 컴파일시 그전에 ...
    • 이민병
    • 1999.05.07 19:37
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 정주영
      1999.05.08 04:40
      이민병 wrote: > 델파이 공부를 시작한지 얼마 안되는데요 > 데이타 모듈을 이용하면 data access관련 컴...
    • 정남용
      1999.05.07 20:22
      DataModule을 사용하는것은 간단합니다... 먼저 New..메뉴를 선택하셔서 DataModule을 만들어요... 그리...
    • 1999.05.07 19:55
      이민병 wrote: > 델파이 공부를 시작한지 얼마 안되는데요 > 데이타 모듈을 이용하면 data access관련 컴...
    • 이민병
      1999.05.07 23:50
      답변 감사합니다. 그런데 updatesql을 쓰는 방법을 잘 모르겠네요. 기존의 방법(책자에 있는)은 수정시 ...
    • 이호선
    • 1999.05.07 18:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.07 20:21
      먼저 Luxent(LightLib)사의 총판은 나이렉스 입니다. LightLib제품군을 구입하실 수는 있지만 기술 지원및...
    • 허정수
    • 1999.05.07 17:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.07 20:03
      허정수 wrote: > pdf화일을 프로그램 상에서 로딩할수 있는 방법은 없나요??? > > 알타비스트라는 인터...
    • 이순희
    • 1999.05.07 10:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하윤철
      1999.05.07 20:46
      이순희 wrote: > 안녕하세요... > 또다시 질문을 올립니다.. > 이번에는 다름이 아니라.. >...
    • 정남용
      1999.05.07 19:59
      우선 이건 편법임을 알려드립니다... 물론 날짜가 정상적으로 입력되었음을 가정하는 경우구요... 질의 ...
    • Heaven
    • 1999.05.07 09:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유수
      1999.05.09 22:07
      안녕하세요. 마스크 에디트에서 오른쪽 마우스 버턴을 누르면 마스크를 편집할 수 있는 메뉴가 있...
    • 최영호
    • 1999.05.07 07:28
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      1999.05.17 23:29
      최영호 wrote: > 안녕하십니까? > 초보가 질문을 하나 올립니다. > 다름이 아니라 제가 메일 프로그램을...
    • 최영호
      1999.05.17 21:45
      대답할 가치조차 없는 질문인것 같군요....... 여긴 고수들이 많이 있는줄 아는데..... 너무 초보적인 문...
    • 강신구
    • 1999.05.07 06:32
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.07 17:09
      또하나 한델 자료실에 가보시면 ICS 최신버전이 있습니다... 테스트 해보지는 못했지만 그것도 괜찬지 않...
    • 이정욱
      1999.05.07 17:03
      델파이 버전이 4이십니까? 그러면 서비스 패치를 하셨는지요? 델파이안의 소켓이 버그가 조금있어서 패치...
    • 강신구
      1999.05.07 18:42
      이정욱 wrote: > 델파이 버전이 4이십니까? > 그러면 서비스 패치를 하셨는지요? > 델파이안의 소켓이 ...
    • 이방인
    • 1999.05.07 04:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 송창규
      1999.05.08 13:00
      각 픽셸의 색도를 조정하면 되지요. 보통 하이컬러와 트루컬러에서 픽셸은 R, G, B값으로 구성되는데 이...
    • 이건환
    • 1999.05.07 04:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.07 16:58
      시리얼 포트를 제어하는 컴포넌트는 상당 수 있습니다. 공개서부터 상용까지~ 델파이 수퍼페이지에 가서 ...
    • 김성제
    • 1999.05.07 03:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 송기원
      1999.05.07 20:47
      Listing A. MDIForms.dpr library MDIForms; uses SysUtils, Classes, Forms, Windows, //MDI Child...
    • 김지건
    • 1999.05.07 03:09
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.07 16:54
      프로그램을 실행시키고 프로그램이 종료될때까지 기다리는 함수 입니다. 참고하세요. function TMainFo...
    • 김지건
      1999.05.07 18:48
      자꾸 여쭤 보아서 정말 죄송한데요?? 전 제가 만든 프로그램이 실행중에 "TalNet.exe"라를 프로그램이...
    • 서영택
    • 1999.05.07 00:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.05.07 06:00
      서로다른 디비의 조인은 시도 했더니 아래와 같은 결과가 나오는 군요 From절이하를 보시면 이해가 가시리...
    • 유수
      1999.05.07 00:42
      안녕하세요. 게임이 실행될 때 전체 화면을 장악(?)하는 것은 다이렉스X를 이용하기 때문에 가능한 것...
    • 정재균
      1999.05.08 01:04
      헤헤..더 간단하게 해봅시다..전 말로만 설명해드릴께요.. 쩝..지금 델파이가 깔려 있지 않아서리.. 간...
    • 짱구
    • 1999.05.06 22:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.07 16:52
      모뎀을 제어하기는 포트만 제어하면 되기때문에 그리 어려운것은 없습니다. 하지만 모뎀의 팩스를 제어하...
    • 이호선
    • 1999.05.06 20:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.06 21:39
      이호선 wrote: > 안녕하세요. > 어플리케이션 Close시에 작업표시줄에 Tray가 나타납니다. > 이것을 클...