C++网络编程学习笔记(二)——服务端编程封装

这篇博客是C++网络编程学习笔记的第二部分,主要介绍如何将基础的服务器端编程代码封装到一个类中,以实现更高效和整洁的管理。作者提醒注意在关闭socket时要处理自己和客户端的连接。
摘要由CSDN通过智能技术生成

C++网络编程学习笔记(二)——服务端编程封装

将上一篇的代码封装为一个类
ps:记得关闭两次socket,一个自己,一个连接过来的客户端

头文件"TcpConnect.h"

#pragma once
//因为操作繁琐,且和系统相关内容过多,对其进行封装
//初始化库,1.要么加一个函数初始化,要么在构造函数中做
#include<string>
class TcpConnect
{
   
public:
	int sock = 0;
	unsigned short port = 0;
	std::string ip;
public:
	TcpConnect();
	virtual ~TcpConnect();
	int CreatSocket();
	bool Bind(unsigned short port);
	//简化版本,如果想设置listen队列数量和IP地址可以重载,包含了bind和listen
	TcpConnect Accept();
	//注意返回的不是指针,是对象,所以不能在析构函数里释放,否则返回一次释放一次
	//12min重听
	//每进来一个连接,都返回该对象,判断client==0为失败
	void Close();
	//释放掉对象,否则socket会太多
	int Recv(char* buf, int bufsize);
	int Send(const char* buf, int sendsize);
	//简单封装,只隐藏个别不用的参数,记得加const
};

cpp文件"TcpConnect.cpp"

//头文件必须放到cpp文件,不然调用者会产生影响,只对自己内部影响
#include "TcpConnect.h"
#ifdef _WIN32
#include<windows.h>

#else
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/unistd.h>
#endif
#include<iostream>
#include<thread&g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值