C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[74891] Re:TCP/IP 소켓 통신 관련 질문
라스코니 [chouoo] 3458 읽음    2018-04-18 09:13
주기적으로 SNMP 패킷을 보내서 상대방이 살아있는지 확인하시면 됩니다.
만약 정해진 시간내에 응답 패킷이 오지 않는다면 상대방과의 소켓 연결을 종료하면 되겠죠.


newrise 님이 쓰신 글 :
: 안녕하세요. 한창 삽질중인 신입입니다.
:
: 같은네트워크 상에 다른 장비[Server] -- PC[Client]프로그램
: 위와 같은 구성이고
: PC 프로그램에서 다른 장비에 붙어서 데이터를 주고 받는 프로그램을 짜고 있습니다.
:
: 서버쪽에서 일반적인 종료[정상적으로 연결 끊기]시 Timer를 통해 다시 연결을 시도합니다.
: 하지만, 랜선 뽑기, 서버쪽 전원 OFF 시에는 프로그램이 인지를 못하고 있습니다.
:
: Q. Errorcode로 처리가 불가능한지 알고 싶습니다. 만약 방법이 없다면 어떤 방법이 효율적인지
: 배우고 싶습니다.
:
: void __fastcall TForm2::Timer2Timer(TObject *Sender)
: {
:     char tmp_buf[1024];
:     char msg_buf[20];
:     int size = 0;
:     int i=0;
:      
:     if(COM_FLAG)
:     {
:         btn_Connect->Caption   = "연결중";
:         ClientSocket1->Address = P_IP;
:         ClientSocket1->Port    = P_PORT;
:         ClientSocket1->Open();
:
:     }
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm2::ClientSocket1Connect(TObject *Sender,
:       TCustomWinSocket *Socket)
: {
:     btn_Connect->Caption = "Conneted OK";
:     TCP_Count = 1;
:     COM_FLAG = 0;
:
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm2::ClientSocket1Disconnect(TObject *Sender,
:       TCustomWinSocket *Socket)
: {
:     btn_Connect->Caption = "Disconnected";
:     TCP_Count = 0;
:     AP_COM_FLAG = 1;
:  
:     //reconnetion_count = 1;
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm2::ClientSocket1Error(TObject *Sender,
:       TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
: {
:     // 클라이언트가 열려 있지 않은 서버 소켓에 대해 접속 시도하여도 에러 메시지창 표출 하지 않음
:     btn_Connect->Caption = "Disconnected";
:     TCP_Count = 0;
:     COM_FLAG = 1;
:
:     TClientSocket *SocketCur = static_cast<TClientSocket *>(Sender);
:
:     if (ErrorCode == 10060)     ErrorCode = 0;
:     if (ErrorCode == 10061)     ErrorCode = 0;
:     if (ErrorCode == 10049)     ErrorCode = 0;
:     if (ErrorCode == 10053)     ErrorCode = 0;
:     if (ErrorCode == 10038)     ErrorCode = 0;
:     if (ErrorCode == 10065)     ErrorCode = 0;
:
:     //SocketCur->Socket->Disconnect(SocketCur->Socket->SocketHandle);
:     SocketCur->Active = false;
:     SocketCur->Socket->Close();
:  
: }
: //---------------------------------------------------------------------------

+ -

관련 글 리스트
74890 TCP/IP 소켓 통신 관련 질문 newrise 3601 2018/04/17
74891     Re:TCP/IP 소켓 통신 관련 질문 라스코니 3458 2018/04/18
74892         Re:Re:TCP/IP 소켓 통신 관련 질문 newrise 3743 2018/04/18
74893             Re:Re:Re:TCP/IP 소켓 통신 관련 질문 라스코니 4102 2018/04/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.