https://github.com/ITACHIhe/epoll_chat_room
这里开始写socket
首先创建一个普通类socket.h socket.cpp
首先先弄一个结构体,这个术语也叫做连接池
struct epoll_conncetion_pool
{
int fd;//保存对方套接字
struct sockaddr_in s_sockaddr;//保存对方地址信息用的
QString ID;//保存对方登录账号
bool islive;//是否断开
QString room;
QString name;
QString mima;
};
注:我这里的实现及其简单,应该实现成双向链表的手法,首先先分配好链表的内存,并且弄成消息头+包头+包体的格式,应用层保证不丢包粘包等(不过局域网丢包不太可能)。
单例模式的相关代码
private:
socket_server();//单例模式的写法
public:
static socket_server* getInstance()//单例模式的写法
{
if(server==nullptr)
{
server=new socket_server();//单例模式的写法
}
return server;
}
static socket_server* freeInstance()//单例模式的写法
{
return server;
}
public:
static socket_server* server;//单例模式的写法