• 大小: 8KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-19
  • 语言: C/C++
  • 标签: 心跳包  Hearthbeat  

资源简介

C语言实现的心跳包

资源截图

代码片段和文件信息

#include “etcp.h“
#include “heartbeat.h“

int main( int argc char **argv )
{
fd_set allfd;
fd_set readfd;
msg_t msg;
struct timeval tv;
SOCKET s;
int rc;
int heartbeats = 0;
int cnt = sizeof( msg );

INIT();
s = tcp_client( argv[ 1 ] argv[ 2 ] );
FD_ZERO( &allfd );
FD_SET( s &allfd );
tv.tv_sec = T1;
tv.tv_usec = 0;
for ( ;; )
{
readfd = allfd;
rc = select( s + 1 &readfd NULL NULL &tv );
if ( rc < 0 )
error( 1 errno “select failure“ );
if ( rc == 0 ) /* timed out */
{
if ( ++heartbeats > 3 )
error( 1 0 “connection dead\n“ );
error( 0 0 “sending heartbeat #%d\n“ heartbeats );
msg.type = htonl( MSG_HEARTBEAT );
rc = send( s ( char * )&msg sizeof( msg ) 0 );
if ( rc < 0 )
error( 1 errno “send failure“ );
tv.tv_sec = T2;
continue;
}
if ( !FD_ISSET( s &readfd ) )
error( 1 0 “select returned invalid socket\n“ );
rc = recv( s ( char * )&msg + sizeof( msg ) - cnt
cnt 0 );
if ( rc == 0 )
error( 1 0 “server terminated\n“ );
if ( rc < 0 )
error( 1 errno “recv failure“ );
heartbeats = 0;
tv.tv_sec = T1;
cnt -= rc; /* in-line readn */
if ( cnt > 0 )
continue;
cnt = sizeof( msg );

/* process message */
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-10-18 23:10  heartbeat\
     文件        1470  2012-10-18 23:09  heartbeat\etcp.h
     文件        1241  2012-10-18 23:09  heartbeat\hb_client.c
     文件        1631  2012-10-18 23:09  heartbeat\hb_server.c
     文件         440  2012-10-18 23:09  heartbeat\heartbeat.h
     文件         479  2012-10-18 23:09  heartbeat\readn.c
     文件         776  2012-10-18 23:09  heartbeat\readvrec.c
     文件         452  2012-10-18 23:09  heartbeat\skel.h
     文件         423  2012-10-18 23:10  heartbeat\tcp_client.c
     文件         633  2012-10-18 23:10  heartbeat\tcp_server.c
     文件        3461  2012-10-18 23:10  heartbeat\tcpsink.c
     文件        2040  2012-10-18 23:10  heartbeat\util.c
     文件         450  2012-10-18 23:10  heartbeat\vrc.c
     文件         647  2012-10-18 23:10  heartbeat\vrs.c

评论

共有 条评论

相关资源