亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? udpoutput.c

?? linux下的dvb收看解析軟件代碼; 帶參考程序
?? C
字號:
/*Copyright (C) 2006  Adam Charrett This program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details. You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA udpoutput.c UDP Output functions */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/socket.h>#include <netdb.h>#include "ts.h"#include "udp.h"#include "logging.h"#define MTU 1400 /* Conservative estimate */#define IP_HEADER (5*4)#define UDP_HEADER (2*4)#define MAX_TS_PACKETS_PER_DATAGRAM ((MTU - (IP_HEADER+UDP_HEADER)) / sizeof(TSPacket_t))/* Default output targets if only host or port part is given */#define DEFAULT_HOST "localhost"#define DEFAULT_PORT "1234"struct UDPOutputState_t{    int socket;    socklen_t address_len;    struct sockaddr_storage address;    int datagramfullcount;    int tspacketcount;    TSPacket_t outputbuffer[MAX_TS_PACKETS_PER_DATAGRAM];};void *UDPOutputCreate(char *arg){    char *host_start;    int host_len;    char hostbuffer[256];    char *host = NULL;    char *port = NULL;    struct UDPOutputState_t *state;    struct addrinfo *addrinfo, hints;    if (arg[0] == '[')     {        host_start = arg + 1;        port = strchr(arg, ']');        if (port == NULL)         {            return NULL;        }        host_len = port - host_start;        port++;    }     else    {        port = strchr(arg, ':');        if (port == NULL )         {            host = strlen(arg) ? arg : DEFAULT_HOST;        }         else         {            host_start = arg;            host_len = port - host_start;        }    }        if (host == NULL)     {        if (host_len == 0)         {            host = DEFAULT_HOST;        }         else         {            if (host_len + 1 > sizeof(hostbuffer))             {                return NULL;            }            memcpy((void *)hostbuffer, host_start, host_len);            hostbuffer[host_len] = 0;            host = hostbuffer;        }    }    if (port == NULL)     {        port = DEFAULT_PORT;    }     else     {        switch( *port )         {            case ':':                port++;                if (strlen(port))                {                    break;                }            /* fall though */            case 0:                port = DEFAULT_PORT;                 break;            default:                return NULL;        }    }    state = calloc(1, sizeof(struct UDPOutputState_t));    if (state == NULL)    {        printlog(LOG_DEBUG, "Failed to allocate UDP Output state\n");        return NULL;    }    printlog(LOG_DEBUG,"UDP Host \"%s\" Port \"%s\"\n", host, port);    memset((void *)&hints, 0, sizeof(hints));    hints.ai_socktype = SOCK_DGRAM;    hints.ai_flags = AI_ADDRCONFIG;    if ((getaddrinfo(host, port, &hints, &addrinfo) != 0) || (addrinfo == NULL))    {        printlog(LOG_DEBUG, "Failed to set UDP target address\n");        free(state);        return NULL;    }        if (addrinfo->ai_addrlen > sizeof(struct sockaddr_storage))    {        freeaddrinfo(addrinfo);        free(state);        return NULL;    }    state->address_len = addrinfo->ai_addrlen;    memcpy(&state->address, addrinfo->ai_addr, addrinfo->ai_addrlen);    freeaddrinfo(addrinfo);    state->socket = UDPCreateSocket(state->address.ss_family);    if (state->socket == -1)    {        printlog(LOG_DEBUG, "Failed to create UDP socket\n");        free(state);        return NULL;    }    state->datagramfullcount = MAX_TS_PACKETS_PER_DATAGRAM;    return state;}void UDPOutputClose(void *arg){    struct UDPOutputState_t *state = arg;    close(state->socket);    free(state);}void UDPOutputDatagramFullCountSet(void *udpoutput, int fullcount){    struct UDPOutputState_t *state = udpoutput;    if ((fullcount > 0) && (fullcount <= MAX_TS_PACKETS_PER_DATAGRAM))    {        state->datagramfullcount = fullcount;    }}int UDPOutputDatagramFullCountGet(void *udpoutput){    struct UDPOutputState_t *state = udpoutput;    return state->datagramfullcount;}void UDPOutputPacketOutput(PIDFilter_t *pidfilter, void *arg, TSPacket_t *packet){    struct UDPOutputState_t *state = arg;    state->outputbuffer[state->tspacketcount++] = *packet;    if (state->tspacketcount >= state->datagramfullcount)    {        UDPSendTo(state->socket, (char*)state->outputbuffer,                  MAX_TS_PACKETS_PER_DATAGRAM * TSPACKET_SIZE,		  (struct sockaddr *)(&state->address), state->address_len);        state->tspacketcount = 0;    }}/* [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535 */char destinationBuffer[48];char *UDPOutputDestination(void *arg){    struct UDPOutputState_t *state = arg;    char portBuffer[6];    char *result, *p;    if (getnameinfo((struct sockaddr *)&state->address, state->address_len,                    destinationBuffer+1, sizeof(destinationBuffer)-3-sizeof(portBuffer),                    portBuffer, sizeof(portBuffer), NI_NUMERICHOST|NI_NUMERICSERV) != 0)    {        return NULL;    }        if (strchr(destinationBuffer+1, ':') != NULL)     {        destinationBuffer[0] = '[';        result = destinationBuffer;        p = result + strlen(result);        *p++ = ']';    }     else    {        result = destinationBuffer + 1;        p = result + strlen(result);    }    *p++ = ':';    strcpy(p, portBuffer);    return result;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人自拍视频在线观看| 日韩欧美美女一区二区三区| 67194成人在线观看| 中国av一区二区三区| 日韩av午夜在线观看| 92精品国产成人观看免费| 精品久久久久久久久久久院品网| 亚洲人成在线观看一区二区| 国产美女精品一区二区三区| 欧美日韩在线亚洲一区蜜芽| 成人免费在线视频观看| 国产精品一区在线| 日韩色在线观看| 一区二区成人在线视频| 国产成人av网站| 日韩精品中文字幕一区二区三区 | 亚洲国产精品天堂| 国产精品18久久久久久vr| 欧美一级夜夜爽| 亚洲一区二区精品3399| 99久久er热在这里只有精品66| 精品福利一二区| 蜜桃一区二区三区在线| 91精品国产综合久久精品麻豆| 亚洲猫色日本管| 91网站视频在线观看| 亚洲欧美综合色| www.一区二区| 亚洲视频小说图片| 91丨九色丨黑人外教| 国产精品久久久久aaaa樱花| 国产呦精品一区二区三区网站| 日韩欧美一级片| 免费欧美高清视频| 日韩欧美一二区| 国内精品免费**视频| 久久日韩粉嫩一区二区三区| 黄色小说综合网站| 国产欧美综合在线观看第十页| 国产成人精品亚洲日本在线桃色 | 成人免费在线播放视频| 色综合夜色一区| 一区二区三区免费网站| 欧美日韩国产片| 久久av资源网| 久久毛片高清国产| 91亚洲永久精品| 一区二区三区国产精品| 欧美男生操女生| 另类小说色综合网站| 日本一区二区在线不卡| 91久久精品一区二区三区| 午夜影院久久久| 精品国精品国产| 波多野结衣中文字幕一区二区三区| 亚洲少妇中出一区| 7799精品视频| 国产成人激情av| 亚洲一区二区三区中文字幕在线 | 久久久国产精品午夜一区ai换脸| 国产精品一卡二| 亚洲精品福利视频网站| 欧美肥妇毛茸茸| 国产精品2024| 亚洲va欧美va天堂v国产综合| 精品少妇一区二区三区在线播放| 成人黄色小视频在线观看| 亚洲成人综合网站| 久久―日本道色综合久久| 色视频欧美一区二区三区| 男人的天堂亚洲一区| 国产精品三级av| 日韩视频永久免费| 色婷婷国产精品| 国产一区二区三区蝌蚪| 亚洲最色的网站| 久久久影院官网| 欧美精品v日韩精品v韩国精品v| 国产精品一区二区免费不卡| 亚洲成人av电影| 国产亚洲福利社区一区| 欧美精品视频www在线观看| 盗摄精品av一区二区三区| 香蕉av福利精品导航| 中文字幕在线观看一区| 日韩欧美一级二级| 欧美日韩情趣电影| av电影在线观看完整版一区二区| 免费不卡在线视频| 午夜精品成人在线视频| 国产精品二三区| 国产欧美一区二区在线| 日韩欧美一区二区视频| 色视频成人在线观看免| av成人免费在线| 成人中文字幕合集| 国产激情一区二区三区四区| 天堂一区二区在线| 亚洲第一久久影院| **欧美大码日韩| 国产精品视频一二三区| 精品国产乱码久久久久久浪潮| 在线观看免费视频综合| 色婷婷综合久久久中文字幕| 成人激情视频网站| 成人妖精视频yjsp地址| 国产精品一品二品| 国产成人8x视频一区二区| 精品亚洲欧美一区| 精品制服美女丁香| 激情六月婷婷久久| 激情综合色综合久久综合| 美国十次综合导航| 久久成人免费电影| 国产在线看一区| 国产精品自拍网站| 国产乱码字幕精品高清av| 国产麻豆精品在线| 成人性生交大合| 91蝌蚪国产九色| 欧美亚洲国产怡红院影院| 欧美写真视频网站| 欧美精品亚洲一区二区在线播放| 欧美精品一级二级| 精品欧美乱码久久久久久1区2区| 日韩免费观看高清完整版在线观看| 欧美一级在线免费| 久久先锋影音av鲁色资源| 久久久激情视频| 中文字幕在线一区免费| 亚洲男人的天堂网| 午夜精彩视频在线观看不卡| 男女视频一区二区| 国产麻豆精品视频| 91美女片黄在线观看91美女| 欧美这里有精品| 91精品国产色综合久久| 久久先锋影音av| 亚洲欧美经典视频| 青草av.久久免费一区| 国产一区二区毛片| 91久久精品日日躁夜夜躁欧美| 欧美人与禽zozo性伦| xvideos.蜜桃一区二区| 亚洲天堂久久久久久久| 亚洲va在线va天堂| 国产成+人+日韩+欧美+亚洲 | 北条麻妃国产九九精品视频| 亚洲欧美综合在线精品| 国产性天天综合网| 亚洲最新视频在线观看| 久久精品国产成人一区二区三区 | 成人午夜在线免费| 在线国产亚洲欧美| 久久综合狠狠综合久久综合88| 自拍偷拍亚洲欧美日韩| 免费观看30秒视频久久| 91免费版pro下载短视频| 91精选在线观看| 日韩一区日韩二区| 精品一区二区三区免费| 91在线精品秘密一区二区| 欧美一区二区三区视频在线 | 99在线精品视频| 日韩三级免费观看| 亚洲精品免费一二三区| 国产一区二区三区香蕉 | caoporen国产精品视频| 欧美成人精品3d动漫h| 一区二区高清免费观看影视大全| 国产老妇另类xxxxx| 3751色影院一区二区三区| 日韩毛片高清在线播放| 国产乱码精品一区二区三区五月婷| 欧美区在线观看| 亚洲男人的天堂网| 风间由美中文字幕在线看视频国产欧美| 欧美影院一区二区| 中文字幕中文字幕一区二区| 精品一区二区三区在线观看 | 99视频精品全部免费在线| 久久久777精品电影网影网 | 成人午夜在线播放| 欧美精品一区二区三区在线播放| 亚洲已满18点击进入久久| 大陆成人av片| 国产三级一区二区三区| 美女在线观看视频一区二区| 欧美日韩国产高清一区二区三区| 中文字幕在线观看一区| 成人动漫视频在线| 国产亚洲欧洲997久久综合| 国产在线日韩欧美| 亚洲精品一线二线三线无人区| 奇米精品一区二区三区在线观看 | 日韩三级电影网址| 日本不卡中文字幕| 欧美一区二区三区爱爱| 日韩精品福利网| 日韩视频一区二区在线观看|