首先我们需要定义一个XTcp类,在这个类的头文件中将创建socket,绑定socket,监听socket和accept通信接口封装起来,分别封装成一个接口。
XTcp.h如下代码:
#pragma once
#include <string>
class XTcp
{
public:
int CreateSocket();
bool Bind(unsigned short port);
XTcp Accept(); //注意这个返回类型不是指针类型,我们需要在后面重新调用一个closesocket函数
void Close();
int Recv(char *buf,int bufsize);
int Send(const char *buf,int sendsize);
XTcp();
virtual ~XTcp();
int sock = 0;
unsigned short port = 0;
std::string ip; //这些信息可以对外开放
};
对上面封装的接口进行实现:
XTcp.cpp如下代码
#include "XTcp.h"
#ifdef WIN32
#include <Windows.h>
#define socklen_t int
#else
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <arpa/inet.h>
#define closesocket close
#endif
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <thread>
using namespace std;
XTcp::XTcp()
{
#ifdef WIN32
stati