架构调整后,修正2860兼容问题,网关C上测试令牌网通过,握手登录心跳

This commit is contained in:
nnhy 2015-09-18 09:08:52 +00:00
parent ce1b811973
commit 0cb8ff5e22
4 changed files with 9 additions and 20 deletions

View File

@ -10,7 +10,7 @@ bool Callback(TinyIP* tip, void* param, Stream& ms);
TcpSocket::TcpSocket(TinyIP* tip) : TinySocket(tip, IP_TCP) TcpSocket::TcpSocket(TinyIP* tip) : TinySocket(tip, IP_TCP)
{ {
//Port = 0; Host = tip;
// 累加端口 // 累加端口
static ushort g_tcp_port = 1024; static ushort g_tcp_port = 1024;
@ -382,7 +382,8 @@ bool TcpSocket::Send(const ByteArray& bs)
#endif #endif
//Stream ms(sizeof(ETH_HEADER) + sizeof(IP_HEADER) + sizeof(TCP_HEADER) + bs.Length()); //Stream ms(sizeof(ETH_HEADER) + sizeof(IP_HEADER) + sizeof(TCP_HEADER) + bs.Length());
byte buf[sizeof(ETH_HEADER) + sizeof(IP_HEADER) + sizeof(TCP_HEADER) + 256]; //byte buf[sizeof(ETH_HEADER) + sizeof(IP_HEADER) + sizeof(TCP_HEADER) + 256];
byte buf[1500];
Stream ms(buf, ArrayLength(buf)); Stream ms(buf, ArrayLength(buf));
ms.Seek(sizeof(ETH_HEADER) + sizeof(IP_HEADER)); ms.Seek(sizeof(ETH_HEADER) + sizeof(IP_HEADER));

View File

@ -72,7 +72,7 @@ uint TinyIP::Fetch(Stream& ms)
if(len < sizeof(ETH_HEADER)) return 0; if(len < sizeof(ETH_HEADER)) return 0;
// 位置指针后移 // 位置指针后移
ms.Seek(-len); //ms.Seek(-len);
// 获取第一个结构体,不要移动指针 // 获取第一个结构体,不要移动指针
ETH_HEADER* eth = ms.Retrieve<ETH_HEADER>(false); ETH_HEADER* eth = ms.Retrieve<ETH_HEADER>(false);
@ -415,7 +415,7 @@ TinySocket::TinySocket(TinyIP* tip, IP_TYPE type)
Tip = tip; Tip = tip;
Type = type; Type = type;
Enable = false; Enable = false;
// 除了ARP以外加入到列表 // 除了ARP以外加入到列表
if(type != IP_NONE) tip->Sockets.Add(this); if(type != IP_NONE) tip->Sockets.Add(this);
} }

View File

@ -34,11 +34,8 @@ public:
TinySocket* FindByType(ushort type); TinySocket* FindByType(ushort type);
}; };
//class TinyIP;
//typedef bool (*LoopFilter)(TinyIP* tip, void* param, Stream& ms);
// 精简以太网协议。封装以太网帧以及IP协议不包含其它协议实现仅提供底层支持。 // 精简以太网协议。封装以太网帧以及IP协议不包含其它协议实现仅提供底层支持。
class TinyIP class TinyIP : public ISocketHost
{ {
private: private:
ITransport* _port; ITransport* _port;
@ -54,22 +51,12 @@ public:
// 任务函数 // 任务函数
static void Work(void* param); static void Work(void* param);
// 带过滤器的轮询
//bool LoopWait(LoopFilter filter, void* param, uint msTimeout);
// 处理数据包 // 处理数据包
void Process(Stream& ms); void Process(Stream& ms);
// 修正IP包负载数据的长度。物理层送来的长度可能有误一般超长 // 修正IP包负载数据的长度。物理层送来的长度可能有误一般超长
void FixPayloadLength(IP_HEADER& ip, Stream& ms); void FixPayloadLength(IP_HEADER& ip, Stream& ms);
public: public:
IPAddress IP; // 本地IP地址
IPAddress Mask; // 子网掩码
MacAddress Mac; // 本地Mac地址
IPAddress DHCPServer;
IPAddress DNSServer;
IPAddress Gateway;
// Arp套接字 // Arp套接字
TinySocket* Arp; TinySocket* Arp;
// 套接字列表。套接字根据类型来识别 // 套接字列表。套接字根据类型来识别

View File

@ -5,7 +5,7 @@
UdpSocket::UdpSocket(TinyIP* tip) : TinySocket(tip, IP_UDP) UdpSocket::UdpSocket(TinyIP* tip) : TinySocket(tip, IP_UDP)
{ {
//Port = 0; Host = tip;
// 累加端口 // 累加端口
static ushort g_udp_port = 1024; static ushort g_udp_port = 1024;
@ -134,7 +134,8 @@ bool UdpSocket::Send(const ByteArray& bs)
//if(ip.IsAny()) ip = Remote.Address; //if(ip.IsAny()) ip = Remote.Address;
//if(!port) port = Remote.Port; //if(!port) port = Remote.Port;
byte buf[sizeof(ETH_HEADER) + sizeof(IP_HEADER) + sizeof(UDP_HEADER) + 256]; //byte buf[sizeof(ETH_HEADER) + sizeof(IP_HEADER) + sizeof(UDP_HEADER) + 1024];
byte buf[1500];
Stream ms(buf, ArrayLength(buf)); Stream ms(buf, ArrayLength(buf));
ms.Seek(sizeof(ETH_HEADER) + sizeof(IP_HEADER)); ms.Seek(sizeof(ETH_HEADER) + sizeof(IP_HEADER));