SmartOS/TinyIP/HttpClient.h

49 lines
1.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _TinyIP_HttpClient_H_
#define _TinyIP_HttpClient_H_
#include "TinyIP.h"
// Http客户端
class HttpClient : public TcpSocket
{
public:
HttpClient(TinyIP* tip);
// 处理数据包
virtual bool Process(MemoryStream* ms);
bool Connect(IPAddress ip, ushort port); // 连接远程服务器记录远程服务器IP和端口后续发送数据和关闭连接需要
void Send(const byte* buf, uint len); // 向Socket发送数据可能是外部数据包
void Disconnect(); // 关闭Socket
// 收到Tcp数据时触发传递结构体和负载数据长度。返回值指示是否向对方发送数据包
typedef bool (*TcpHandler)(TcpSocket* socket, TCP_HEADER* tcp, byte* buf, uint len);
TcpHandler OnAccepted;
TcpHandler OnReceived;
TcpHandler OnDisconnected;
virtual string ToString();
protected:
void SendAck(uint len);
void SetSeqAck(TCP_HEADER* tcp, uint ackNum, bool cp_seq);
void SetMss(TCP_HEADER* tcp);
void Send(TCP_HEADER* tcp, uint len, byte flags);
virtual void OnProcess(TCP_HEADER* tcp, MemoryStream& ms);
virtual void OnAccept(TCP_HEADER* tcp, uint len);
virtual void Accepted2(TCP_HEADER* tcp, uint len);
virtual void OnDataReceive(TCP_HEADER* tcp, uint len);
virtual void OnDisconnect(TCP_HEADER* tcp, uint len);
virtual bool OnOpen();
virtual void OnClose();
virtual bool OnWrite(const byte* buf, uint len);
virtual uint OnRead(byte* buf, uint len);
};
#endif