1 Star 0 Fork 10

wustMac/xfiber

forked from meqizhang/xfiber 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
xsocket.h 1012 Bytes
一键复制 编辑 原始数据 按行查看 历史
meiqizhang 提交于 2022-04-23 15:35 . 增加超时机制
#pragma once
#include <memory>
#include <unistd.h>
#include <inttypes.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include "util.h"
class Fd {
public:
Fd();
~Fd();
static uint32_t next_seq_;
int RawFd();
void RegisterFdToSched();
bool Available();
protected:
int fd_;
int seq_;
};
class Connection;
class Listener : public Fd {
public:
Listener();
~Listener();
std::shared_ptr<Connection> Accept();
void FromRawFd(int fd);
static Listener ListenTCP(uint16_t port);
private:
uint16_t port_;
};
class Connection : public Fd {
public:
Connection();
Connection(int fd);
~Connection();
static std::shared_ptr<Connection> ConnectTCP(const char *ipv4, uint16_t port);
ssize_t Write(const char *buf, size_t sz, int timeout_ms=-1) const;
ssize_t Read(char *buf, size_t sz, int timeout_ms=-1) const;
};
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/macwust/xfiber.git
[email protected]:macwust/xfiber.git
macwust
xfiber
xfiber
master

搜索帮助