Microsoft MVP성태의 닷넷 이야기
소켓 비동기 ReceiveTimeOut 구현 [링크 복사], [링크+제목 복사],
조회: 15526
글쓴 사람
봉봉이
홈페이지
첨부 파일
 

안녕하세요.
비동기 소켓 Receive Timeout 구현에 관해서 질문을 드립니다.
제가 구현하려고 하는것은 Socket이 정말 끊어졌있는지 확인하려는 용도로 2분 마다 timer로 client, Server간 핸드쉐이킹으로 메세지를 주고 받습니다. 그리고 client가 server로 부터 얼마동안 메세지를 받지 못하면 socket이 끊어졌다 판단하고 재접속하는 로직입니다.

따라서, recievetimeout을 구현해야 하는데..

구글링 하여 구현 방법으로는 아래와 같이 WaitOne으로 감지하는 것인데 우선 WaitOne으로 ReceiveTimeout을 구현할 수 있는지 궁금합니다.
(우선 구현해서 테스트 해본 결과 계속 res가 false로 들어오긴 하네요 ㅠㅠ)

var result = socket.BeginReceive(_dataBuf, 0, _dataBuf.Length, SocketFlags.None, WorkerCallBack, null);

IAsyncResult res = result.AsyncWaitHandle.WaitOne(_receiveTimeout, false);
if (!res)
{
   //timeout발생
}
        








[최초 등록일: ]
[최종 수정일: 1/13/2020]


비밀번호

댓글 작성자
 



2020-01-13 07시12분
간단한 테스트 코드를 올려주세요.

재현 가능한 최소한의 예제 프로젝트란?
; http://www.sysnet.pe.kr/2/0/11452
정성태
2020-01-14 09시14분
[봉봉이] 안녕하세요. 우선 소스 봐주셔서 감사합니다.
제가 참고한 소스가 아래와 같습니다. https://learn.microsoft.com/ko-kr/dotnet/framework/network-programming/asynchronous-client-socket-example
제가 생각했을 때 OnDataReceived 함수에서 EndReceive()를 호출 한뒤에 계속 서버가 데이터 수신을 위해서 BeginReceive전 WaitOne(timespan, false)을 호출하면 된다고 생각을 했는데..
혹시 다른방법이 있을까요? 찾아본봐로는 타이머를 Wrapping하는 방법이 있긴 하던데.. 이것도 잘 안되서요.
[guest]

1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5887HAN4/12/202311076안녕하세요 파이썬도 공유 가능 할까요? [1]
5886guest4/11/202312244필요한 어셈블리만 다운로드 및 재로딩하는 방법에 관하여 [2]
5885guest4/11/202311421c#으로 드림위버같은 거 만들어볼려는데요 [6]
5884궁금이4/11/202311360부모 클래스에서 예외 발생시 힙 영역에 할당 ? [2]
5883코딩초짜4/9/20231123810c언어 usleep 에 대해서 요 [2]
5882조은현4/7/202310553선생님 안녕하세요! wpf의 성능 개선에 대해서 질문드려요! [1]파일 다운로드1
5881guest4/6/202311474static method - <에러메시지 Extension method must be defined in a non-generic static class> [4]
5880유비4/4/202310794WPF DataGrid CollectionView, IEditableCollectionView 관련 문의 [1]
5879guest4/4/202311899Async method의 에러 표시 [3]
5878guest4/3/202312217C#으로 CMOS 설정 변경가능한지요? [4]
5875guest4/2/202312652성태님 책을 완독 하고 Static [7]
5874민성4/1/202311746안녕하세요 질문 하나만 드릴깨요~ [1]
5873guest3/31/202312159제어판에서 삭제불가 MS Edge ---> 레지스트리 편집기에서도 안보임 [6]파일 다운로드1
58723/31/202311527web config 파일 확인부탁드려요 [6]
58713/31/202311416web config 파일 수정이요 [2]파일 다운로드1
5870guest3/30/202311481.NET Core SDK 삭제 시 주의 사항 [4]파일 다운로드1
5869guest3/30/202311948Dictionary의 Update 그리고 Foreach [7]
5868guest3/29/202311274Speech Recognition과 Form1 그리고 정확도 [4]파일 다운로드1
5866월급쟁이3/28/202310988cmake 크로스 컴파일 관련하여 질문이 있습니다 [1]
5865guest3/28/202310649Github Copilot과 코딩실력 향상? [1]
5864guest3/27/202311757System.NullReferenceException - 개체참조가 개체의 인스턴스... [6]파일 다운로드1
5863guest3/24/202311254이벤트 핸들러 사라짐 현상 - Button [4]
5862guest3/21/202311638세계최초 hts와 싱글스레드 [8]
5861다크파이썬3/21/202312456WPF를 사용하려고 하려고 도서 문의합니다. [2]
5860guest3/21/202310887인텔코어 i5 CPU와 스레드 [4]
5859guest3/21/202310385개발 일지 어떻게 관리하시나요? 이런 프로그램 없나요? [3]
1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...