⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 network.hh

📁 ac3的解码程序
💻 HH
字号:
/*  File: network.hh    Description:  This file contains all network functions to be used with the mpeg2player. This  is a temporary solution. The complete AtmSocket API should be used for this  in order to use configuration/testing facilities. Hopefully we can do that im  June/July 1996    This file has been re-organized big time to cover a more generic range of  options not necesdarilly related to the mpeg2player.  class Socket           // Abstract class    class SocketFile     // Socket to file    class SocketTcp      // TCP stream socket    class SocketUdp      // UDP datagram socket - NOT TESTED    class SocketAtmSpans // ATM Fore Spans signalling socket    class SocketAtmPvc   // ATM Fore PVC socket  class SocketMulti      // Socket accepts call from TCP, UDP, ATM spans, or PVC  Created: April 1996, Alex Theo de Jong, NIST*/#ifndef __network_hh_ #define __network_hh_// Network#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/uio.h>#include <sys/ioctl.h>#include <unistd.h>#include <netinet/in.h>#include <netdb.h>#include <arpa/inet.h>#include <errno.h>#include <sys/fcntl.h>#ifdef FORE_ATM// Fore API#include <fore_atm/fore_atm_user.h>#define ATMDEVICE  "/dev/fa0"#endif// Abstract classclass Socket {  friend class SocketMulti; protected:  int socketfd;   // variables for recv  unsigned char* bfr;  int bytes, read_bytes; public:  Socket(){ socketfd=-1; }  virtual ~Socket(){}  virtual int accept() = 0;  virtual int recv(unsigned char* data, int size) = 0;  virtual int send(unsigned char* data, int size) = 0;  virtual int close() = 0;};class SocketFile : public Socket {  String filename; public:  SocketFile(const char* filename=0);  ~SocketFile();  int accept(){ return (socketfd>=0); }  int recv(unsigned char* data, int size);  int send(unsigned char*, int){ return -1; }  int close();};class SocketTcp : public Socket {  int fd; public:  SocketTcp(unsigned int asap, unsigned int pdu_size=0);  ~SocketTcp();  int accept();  int recv(unsigned char* data, int size);  int send(unsigned char* data, int size){    return ::write(fd, data, size);  }  int close();};class SocketUdp : public Socket {  sockaddr_in cli_addr;  sockaddr* pcli_addr;  int cli_len;  int fd; public:  SocketUdp(unsigned int asap, unsigned int pdu_size=0);  ~SocketUdp();  int accept();  int recv(unsigned char* data, int size);  int send(unsigned char* data, int size){    return ::sendto(fd, (char*) data, size, 0, pcli_addr, cli_len);  }  int close();};#ifdef FORE_ATMclass SocketAtmSpans : public Socket {  unsigned int asap;  Aal_type aal_type;  Atm_qos qos;  Atm_dataflow dataflow;  Atm_endpoint atm_endpoint;  int fd; public:  SocketAtmSpans(unsigned int sap);  ~SocketAtmSpans();  int accept();  int recv(unsigned char* data, int size);  int send(unsigned char* data, int size){    return ::atm_send(fd, (caddr_t) data, size);  }  int close();};class SocketAtmPvc : public Socket {  Aal_type aal_type;  Atm_dataflow dataflow;  Vpvc vpvc;  int fd; public:  SocketAtmPvc(unsigned int vci, unsigned int vpi=0);  ~SocketAtmPvc();  int accept();  int recv(unsigned char* data, int size);  int send(unsigned char* data, int size){    return ::atm_sendto(fd, (caddr_t) data, size, vpvc);  }  int close();};#endif // FORE_ATM// Multi socket that accepts the first available connection;// either TCP, UDP, ATM SPANS or ATM PVC#define SOCKETMULTI_MAX   10class SocketMulti {  Socket** sockets;  Socket* socket;  int count; // number of sockets public:  SocketMulti(const char* filename);  SocketMulti(unsigned int asap, int pdu_size, unsigned int vci=60, unsigned int vpi=0);  ~SocketMulti();  int accept();  int recv(unsigned char* data, int size){ return socket->recv(data, size); }  int send(unsigned char* data, int size){ return socket->send(data, size); }  int close(){ return socket->close(); }};#endif // __network_hh_

⌨️ 快捷键说明

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