일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- public
- SERIAL
- Binary
- aduino
- APP
- flutter
- Overloading
- stream
- Read
- preprocessing
- mfc
- inheritance
- Contour
- Barcode
- wpf
- Pointer
- memory
- Unity
- sensor
- java
- UNO
- compare
- file access
- Class
- digitalRead
- Android
- length
- atmega328
- parameter
- Encapusulation
- Today
- Total
폴크(FOLC)
MFC 테크닉 - 통신 Socket ( Heartbeat ) 본문
# TCP/IP 로 통신을 진행하는 상태 확인
> 1:1, 1:N, N:1
> 통신 연결을 사용하고 있는 PC 의 Listen socket 과 연결된 socket 에는 동일한 파라미터가 적용됨.
- 각 socket 별로 별도의 파라미터 적용이 가능
# Socket 에서 보유하고 있는 기본 기능( KeepAlive 기능 )으로 설정된 시간 동안 데이터 송/수신이 없는 경우 socket 을 제거하고 연결 상태를 해제 시킨다. ( 리소스 삭제 )
> 기본 2시간 대기
> 비 정상 종료로 인해서 socket 을 사용하지 못하는 경우 ( 예외 처리 용 )
> LanCable 을 제거 했거나 통신 선로 상의 문제가 발생하는 경우 ( 예외 처리 용 )
# 소스 코드 ( CSocket 상속 받은 클래스 )
struct tcp_keepalive
{
DWORD onoff, keepalivetime, keepaliveinterval;
};
tcp_keepalive sSettings = { 0 };
sSettings.onoff = 1; // Keep Alive ON
sSettings.time = time_ms; // Keep Alive in XXX sec.
sSettings.interval = intv_ms; // Resend if No-Reply - check 10 times
SetSockOpt(SO_KEEPALIVE, (void*)&sSettings.onoff, sizeof(DWORD), SOL_SOCKET); // KEEP ALIVE 활성화
SetSockOpt(TCP_KEEPALIVE, (void*)&sSettings.time, sizeof(DWORD), IPPROTO_TCP); // KEEP ALIVE 시간 간격
SetSockOpt(TCP_NODELAY, (void*)&sSettings.interval, sizeof(DWORD), IPPROTO_TCP); // KEEP ALIVE 지연 시간
'C, C++, MFC > C, C++, MFC 테크닉' 카테고리의 다른 글
MFC 테크닉 - OOP (0) | 2021.11.21 |
---|---|
MFC 테크닉 - 통신 CSocket (0) | 2021.11.16 |
MFC 테크닉 1 (0) | 2021.08.03 |
C++ 테크닉 4 (0) | 2021.07.02 |
C++ 테크닉 3 (0) | 2021.07.02 |