tcppacket.h
上传用户:zslianheng
上传日期:2013-04-03
资源大小:946k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Visual C++

  1. /***************************************************************************
  2.  *                                                                         *
  3.  *   This program is free software; you can redistribute it and/or modify  *
  4.  *   it under the terms of the GNU General Public License as published by  *
  5.  *   the Free Software Foundation; either version 2 of the License, or     *
  6.  *   (at your option) any later version.                                   *
  7.  *                                                                         *
  8.  *   copyright            : (C) 2002 by Zhang Yong                         *
  9.  *   email                : z-yong163@163.com                              *
  10.  ***************************************************************************/
  11. #ifndef _TCP_PACKET_H
  12. #define _TCP_PACKET_H
  13. #include <cstdio>
  14. #include <string>
  15. #include "icqpacket.h"
  16. #include "icqsocket.h"
  17. #pragma pack(1)
  18. struct TCP_HEADER {
  19. uint16 ver;
  20. uint32 reserved;
  21. uint16 cmd;
  22. uint32 uin;
  23. };
  24. #pragma pack()
  25. class TcpOutPacket : public IcqOutPacket {
  26. public:
  27. TcpOutPacket() {
  28. cursor += sizeof(uint16);
  29. }
  30. int send(int sock);
  31. };
  32. class TcpInPacket : public IcqInPacket {
  33. public:
  34. TcpInPacket(const char *d, int len)
  35. : IcqInPacket(d, len) {
  36. cursor += sizeof(TCP_HEADER);
  37. }
  38. uint32 getUIN() { return ntohl(((TCP_HEADER *) data)->uin); }
  39. uint16 getCmd() { return ntohs(((TCP_HEADER *) data)->cmd); }
  40. };
  41. #endif