Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
CLIENT 비정상종료때 서버소켓이 감지하기?
소켓을 이용하여 채팅 프로그램을 만들었는데
클라이언트가 다운이 되거나 전원을 내렸을때
서버에 ClientDisconnect 에서 어떠한 이벤트도 발생하지 않네요....
도대체 어떻게 클라이언테의 Disconnect를 감지해야 하나요....
미티겠습니다.
아시는 고수님들 답변좀 부탁드립니다.
3
COMMENTS
이경문
•
2001.04.24 04:50
소켓 프로그래밍의 가장 어려운 점중의 하나라고 보셔도 됩니다.
실제적으로 winsock상에서 TCP의 connect, disconnect event는
상대방의 비정상적인 종료(프로그램이나 OS, H/W)에 대응하지 못합니다.
즉 어플리케이션에서 그것들을 처리해야 되지요.
가장많이 사용하는 방법중의 한가지는 keep alive packet을 사용하는 것입니다.
예를 들면 tcp/ip program를 작성하였는데
"최소한 클라이언트는 서버에서 1분에 한번은 keep alive packet을 보내야 한다"라고 가정하고
클라이언트가 서버에 접속되게 되면 55초마다 서버에 keep alive packet을 보내고
서버는 1분동안 아무 패킷이 들어오지 않은 클라이언트는 죽어 있다고 가정을 하는 것이지요.
도움이 되셨으면 좋겠네요....
윤남준 wrote:
> 소켓을 이용하여 채팅 프로그램을 만들었는데
>
> 클라이언트가 다운이 되거나 전원을 내렸을때
>
> 서버에 ClientDisconnect 에서 어떠한 이벤트도 발생하지 않네요....
>
> 도대체 어떻게 클라이언테의 Disconnect를 감지해야 하나요....
>
> 미티겠습니다.
>
> 아시는 고수님들 답변좀 부탁드립니다.
0
0
삭제
수정
댓글
윤남준
•
2001.04.24 05:16
무지무지 감사합니다.
만들면서 ICQ나 MSN 을 생각해서 그렇게 하면 너무 많은
사용자가 접속중이면 트레픽과 리소스를 잡아먹지는 않을까 했었는데....
설명해주신 방법을 사용하는 방법이 좋을거 같네요
많은 도움
0
0
삭제
수정
댓글
이경문
•
2001.04.24 06:33
참고로 말씀드립니다. ICQ는 UDP를 사용하고 있습니다(MSN은 모르겠슴).
UDP는 connectionless 방식이어서 상대방이 연결을 끊었는지에 대한
차제적인(UDP차원에서) 방법이 없습니다.
즉 Application에서 그렇 것들을 처리하고 있다는 것입니다.
윤남준 wrote:
> 무지무지 감사합니다.
> 만들면서 ICQ나 MSN 을 생각해서 그렇게 하면 너무 많은
> 사용자가 접속중이면 트레픽과 리소스를 잡아먹지는 않을까 했었는데....
> 설명해주신 방법을 사용하는 방법이 좋을거 같네요
> 많은 도움
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
어린왕자
2001.04.24 20:55
0
COMMENTS
/
0
LIKES
PageControl에서 코딩으로 TabSheet를 눌러주고 싶어요.
궁금이
•
2001.04.24 20:19
1
COMMENTS
/
0
LIKES
인스톨쉴드 관련 문제
아폴론
•
2001.04.24 22:25
궁금이 wrote: > 델파이4.0안에 있는 인스톨쉴드를 설치하고 인스톨디스켓을 만들시에 > 보통 디스켓으로...
안나
•
2001.04.24 19:29
2
COMMENTS
/
0
LIKES
날짜를 변환하고 싶은데요....
하기
•
2001.04.25 01:04
예전에 어떤분이 한번 올리신것 같은데 참고 하세요.... procedure TForm1.Button1Click(Sender: TObjec...
안나
•
2001.04.25 01:18
하기 wrote: > 예전에 어떤분이 한번 올리신것 같은데 참고 하세요.... > > procedure TForm1.Button1C...
김영애
•
2001.04.24 19:05
1
COMMENTS
/
0
LIKES
'문자열 데이터의 오른쪽이 잘렸습니다.' 에러~
나연희
•
2001.04.25 03:30
> 1. parambyname('mnote').AsString > 2. parambyname('mnote').AsMemo AsString으로 하시면 Stri...
김미정
2001.04.24 19:11
0
COMMENTS
/
0
LIKES
QR3.07 구합니다.
궁그미
•
2001.04.24 07:58
1
COMMENTS
/
0
LIKES
bookmark에 대해서 설명 좀 해주세요.
하얀까마귀
•
2001.04.24 10:10
음... 북마크는 TBookmark 형을 가지고 있는겁니다. 이넘은 그냥 포인터구요.. 디비 그리드에서 뿌려지는 ...
루단스
•
2001.04.24 07:52
2
COMMENTS
/
0
LIKES
ActiveX 에서 tbl에다 프로퍼티 추가하는데 type는???
서철기
•
2001.04.24 18:31
variant로 잡고.. 실제 프로시져에서 스트링으로 쓰시면 되요.. 루단스 wrote: > 프로퍼티 추가하는...
foresun
•
2001.04.24 11:10
델파이 메뉴에서 View-Type library를 선택하면 Type library 에디터가 나옵니다. 트리뷰에서 루트의 첫번...
Hwani
2001.04.24 07:43
0
COMMENTS
/
0
LIKES
인터베이스 서로다른 DB연결하기~ㅠㅠ
김경태
•
2001.04.24 07:35
1
COMMENTS
/
0
LIKES
소수점반올림(5.44444445)을 할때 자리수 둘째와 셋째경우는
하얀까마귀
•
2001.04.24 10:17
제가 알기로는 둘째짜리까지하면 5.44 아닌가요?? 셋째자리도 5.444 가 맞는걸로 아는데.. 내가 틀린건가...
꼬마 마녀^.^
•
2001.04.24 07:20
3
COMMENTS
/
0
LIKES
휴지통에 대해서...제발 가르쳐 줘여.. 제발...@_@...
꼬마마녀시로
•
2001.04.24 21:01
아래 답변이 참 자세하네요.. 트윅 관련 유틸 써보세요..잼있어요. 휴지통이름두 바뀌구. 마우스팁두 바...
꼬마 마녀^.^
•
2001.04.25 07:41
꼬마마녀시로 wrote: > 아래 답변이 참 자세하네요.. > 트윅 관련 유틸 써보세요..잼있어요. > 휴지통이...
파도랑
•
2001.12.11 00:58
꼬마 마녀^.^ wrote: > 님들아 제가 휴지통 이름 바꾸는 것에 대해 꼭 알아야 해여.... > 보통 상식으로...
김필수
•
2001.04.24 05:38
5
COMMENTS
/
0
LIKES
라디오 그룹 컴포넌트 처럼...
하얀까마귀
•
2001.04.24 10:50
님이 말씀하신건 동적생성을 해야할것 같네요.. 참고하시면 될것 같네요.. 우선 님이 말씀하신것처럼 ...
김필수
•
2001.04.25 01:54
넘 감사합니다. 정말 도움이 확실히 됩습니다. 그런데 동적으로 생성한 버튼들에 어떻게 이벤트(OnCl...
하얀까마귀
•
2001.04.25 05:56
안녕하세요.. 이벤트 또한 만들어 주시면 됩니다.. procedure TForm1.BtnClick(Sender : TObject ); b...
파도랑
•
2001.12.11 00:59
김필수 wrote: > 안녕하세요 > > 궁금한 점이 있어 글을 올립니다. > 라디오 그룹 컴포넌트에서 보면 ...
김필수
•
2001.04.25 01:47
제가 물어 본건 라디오 그룹 자체가 아니였는데... 어떤객체를 동적으로 생성하고자 하는 경우를 물어본거...
윤남준
•
2001.04.24 04:44
3
COMMENTS
/
0
LIKES
CLIENT 비정상종료때 서버소켓이 감지하기?
소켓을 이용하여 채팅 프로그램을 만들었는데 클라이언트가 다운이 되거나 전원을 내렸을때 서버에 ClientDisconnect 에서 어떠한 이벤트도 발생하지 않네요.... 도대체 어떻게 클라이언테의 Disconnect를 감지해야 하나요.... 미티겠습니...
이경문
•
2001.04.24 04:50
소켓 프로그래밍의 가장 어려운 점중의 하나라고 보셔도 됩니다. 실제적으로 winsock상에서 TCP의 connect...
윤남준
•
2001.04.24 05:16
무지무지 감사합니다. 만들면서 ICQ나 MSN 을 생각해서 그렇게 하면 너무 많은 사용자가 접속중이면 트레...
이경문
•
2001.04.24 06:33
참고로 말씀드립니다. ICQ는 UDP를 사용하고 있습니다(MSN은 모르겠슴). UDP는 connectionless 방식이어서...
이창영
•
2001.04.24 03:47
2
COMMENTS
/
0
LIKES
쿼리문으로 일련번호 구하기
하얀까마귀
•
2001.04.24 11:10
access를 사용해보지 않아서 잘모르겠습니다만.. Union을 사용할려면 select 1 from '테이블명'을 해주셔...
이창영
•
2001.04.24 19:08
하얀까마귀 wrote: > access를 사용해보지 않아서 잘모르겠습니다만.. > Union을 사용할려면 > select 1...
승
•
2001.04.24 03:28
1
COMMENTS
/
0
LIKES
memo에 내용을 배열에 한글자씩 집에 넣을러면...
하얀까마귀
•
2001.04.24 11:23
Memo.Lines[i] 배열에 라인 단위로는 집에 넣어 지는데 한 글자 단위로는 집어 넣어 지질 안내요 어떡게 ...
왕초보 델
2001.04.24 05:41
0
COMMENTS
/
0
LIKES
델파이실행시,메모장과의 동시 실행되는방법좀.부탁합니다..
강동희
2001.04.24 03:14
0
COMMENTS
/
0
LIKES
[급질문요!]Query1의 데이터셋을 Query2에서 읽어올수 있나요?
나연희
2001.04.24 03:08
0
COMMENTS
/
0
LIKES
Radio Group 에서요...
kjh404
2001.04.24 02:27
0
COMMENTS
/
0
LIKES
그건염..
리포트
•
2001.04.24 02:23
1
COMMENTS
/
0
LIKES
[리포트]pageheader부분만 나오고 암것도 안나와여 플리즈
김동환
•
2001.04.24 09:38
리포트 wrote: > 델파이 3.0 에 > 리포트 2.0 인데요. > > 모든 밴드 추가하고.. > 내용을 다 배열...
이슬이
2001.04.24 02:13
0
COMMENTS
/
0
LIKES
하기님 보세염..답변 감사합니다..
윤남준
2001/04/24 04:44
Views
451
Likes
0
Comments
3
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
실제적으로 winsock상에서 TCP의 connect, disconnect event는
상대방의 비정상적인 종료(프로그램이나 OS, H/W)에 대응하지 못합니다.
즉 어플리케이션에서 그것들을 처리해야 되지요.
가장많이 사용하는 방법중의 한가지는 keep alive packet을 사용하는 것입니다.
예를 들면 tcp/ip program를 작성하였는데
"최소한 클라이언트는 서버에서 1분에 한번은 keep alive packet을 보내야 한다"라고 가정하고
클라이언트가 서버에 접속되게 되면 55초마다 서버에 keep alive packet을 보내고
서버는 1분동안 아무 패킷이 들어오지 않은 클라이언트는 죽어 있다고 가정을 하는 것이지요.
도움이 되셨으면 좋겠네요....
윤남준 wrote:
> 소켓을 이용하여 채팅 프로그램을 만들었는데
>
> 클라이언트가 다운이 되거나 전원을 내렸을때
>
> 서버에 ClientDisconnect 에서 어떠한 이벤트도 발생하지 않네요....
>
> 도대체 어떻게 클라이언테의 Disconnect를 감지해야 하나요....
>
> 미티겠습니다.
>
> 아시는 고수님들 답변좀 부탁드립니다.