packet.cc

来自「这是一个著名的应用层组播中间件的源码」· CC 代码 · 共 74 行

CC
74
字号
//Copyright (c) 2004, Charles Killian, Adolfo Rodriguez, Dejan Kostic, Sooraj Bhat, and Amin Vahdat//All rights reserved.////Redistribution and use in source and binary forms, with or without//modification, are permitted provided that the following conditions are met:////   * Redistributions of source code must retain the above copyright//     notice, this list of conditions and the following disclaimer.//   * Redistributions in binary form must reproduce the above copyright//     notice, this list of conditions and the following disclaimer in//     the documentation and/or other materials provided with the//     distribution.//   * Neither the names of Duke University nor The University of//     California, San Diego, nor the names of its contributors//     may be used to endorse or promote products derived from//     this software without specific prior written permission.////THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"//AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE//IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE//DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE//FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL//DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR//SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,//OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE//USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#include "packet.h"#include <stdlib.h>#include <string.h>int hdr_cmn::offset_;int hdr_ip::offset_;extern int nsport_headersize;int big_hdr_size = 0;Packet::Packet(){  //printf("Allocating new Packet of size %d.\n", nsport_headersize);  bits_ = 0;  size_ = 0;  data_ = 0;  hdrlen_ = nsport_headersize;    //sizeof(hdr_cmn) + sizeof(hdr_ip) + sizeof(hdr_lift);  }Packet *Packet::copy(){  Packet *pkt;    pkt = alloc();  memcpy(pkt->bits_, bits_, hdrlen_);    if (data_)    {      pkt->data_ = (unsigned char *)malloc(size_);      memcpy(pkt->data_, data_, size_);    }  pkt->hdrlen_ = hdrlen_;  pkt->size_ = size_;  return pkt;}PacketHeaderClass::PacketHeaderClass(char *mystring, int size){  size_ = size;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?