안녕하세요.. 소켓 서버를 만들다가 막히는 부분이
있어 질문 올립니다.
소켓 옵션 중 KeepAlive에 대한 사용법을 잘 모르겠네요.
SetSocketOption 함수의 마지막 인자로 무얼 넣어야
하는지 모르겠습니다.. MSDN에도 안나와있네요..
sock.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.KeepAlive, 60*1000);
위와 같이 밀리세컨드 값을 넣어보니 전혀 동작하지
않는것 같네요.. ㅡㅡ;
자세한 사용법 아시면 꼭 답변 좀 부탁드립니다.
그리고 C++에서는 각 소켓별로 KeepAlive에 대한 설정을
상세하게 할 수 있었는데.. 아래와 같이 말이죠..
tcp_keepalive
keepAlive = { TRUE, nKeepAliveTime, nKeepAliveInterval};
DWORD
nBytesReturned;
if(SOCKET_ERROR==WSAIoctl(m_sock,
SIO_KEEPALIVE_VALS, &keepAlive, sizeof(keepAlive),
0,
0, &nBytesReturned, NULL, NULL ))
{
LOGWRITE(JSOCKSVR_LOGERR,
"ERROR:%05d - Failed to enable KEEPALIVE",WSAGetLastError());
closesocket(m_sock);
m_sock=NULL;
return
FALSE;
}
C#에서 이런식으로 각 소켓에 대한 KeepAliveTime이나
Interval 설정을 하는 방법이 있을까요?
서버에 반드시 필요한 내용인데.. 아직은 C#을 쓰시는
분들이 많지 않은지..
검색해봐도 잘 찾아지지가 않네요..
고수님들 답변 꼭 부탁드립니다.
그럼.. 즐코딩 하세요~