mdist.h

来自「一个C编写网络广播的程序」· C头文件 代码 · 共 71 行

H
71
字号
/* mdist.h -- core definitions header file *   * This file is part of 'netcast' program, released under BSD License.  * (c) 2001-2002 Stanis砤w Pa秌o <staszek@nutki.com>. All rights reserved.    */#ifndef _MDIST_MDIST_H#define _MDIST_MDIST_H#include <unistd.h>#include <netinet/ip.h>#include <netinet/udp.h>#include "debug.h"#define MTU 1500#define MMSIZE MTU-sizeof(struct iphdr)-sizeof(struct udphdr)#define MMDSIZ ((MMSIZE-sizeof(struct mdmsg))>>2)<<2#define ROUND 1024#define BUFSIZE MMSIZE*ROUND#define BUFPOS(x) MMSIZE*x#define DEF_PORT 9876//! Single message as received from the netstruct mdmsg {  uint32_t seq;  uint32_t crc;  uint16_t siz;  uint8_t data[0];};//! TCP messages//! Control messagestruct mdctl {  uint32_t blk;              //! Block number  uint32_t base;             //! Base for packet sequence nums  uint32_t siz;              //! Block size   uint32_t pkt;              //! Number of packets to-be-transmitted};#define CLIENT_START 0x1#define CLIENT_READY 0x2#define CLIENT_REQ 0x4//! Client replystruct mdreq {  uint32_t ack;              //! Acknowledge block number  uint32_t rqc;              //! Requested blocks count};//! Initial datastruct mdinit {  struct sockaddr_in group;};  extern struct mdmsg *mdbuf[ROUND];extern struct mdctl mdhead;extern struct mdinit mdini;void md_init();long md_fill(int fd);long md_flush(int fd);struct mdmsg *md_put(struct mdmsg *src);struct mdmsg *md_get(uint32_t seq);#endif

⌨️ 快捷键说明

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