server.h:
#pragma once
#include <WinSock2.h>
#include <WS2tcpip.h>
#include
class server
{
public:
server();
~server();
void severStart(int port);
void serverStop();
void serverAccpt();
void serverRecv();
void selectHeart();
private:
SOCKET serverSide;
SOCKET clientSide;
std::map<SOCKET, int> clientHeart;
};
server.cpp
#include “stdafx.h”
#include “server.h”
#include
#include
using namespace std;
server::server()
{
}
server::~server()
{
}
//启动服务器
void server::severStart(int port)
{
WSADATA wsa = { 0 };
WSAStartup(MAKEWORD(2, 2), &wsa); //使用函数WSAStartup()绑定相应版本的套接字库:成功返回0;
//创建套接字(参数为:)地址系列 套接字类型 协议号
//socket(domain = AF_INET, type = SOCK_STREAM, proto = IPPROTO_TCP)
server

该博客介绍了如何使用C++编程实现TCP服务器的心跳机制。通过`server.h`、`server.cpp`和`main.cpp`文件展示了创建服务器、监听客户端连接、接收数据以及维护心跳的详细过程。服务器在接收到客户端请求后,会启动一个心跳检测线程,每隔3秒检查一次客户端状态,若15秒内未收到客户端响应则认为连接断开。
3115

被折叠的 条评论
为什么被折叠?



