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

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

?? client.c

?? 一個C編寫網絡廣播的程序
?? C
字號:
/* client.c -- main client source code *   * This file is part of 'netcast' program, released under BSD License.  * (c) 2001-2002 Stanis砤w Pa秌o <staszek@nutki.com>. All rights reserved.  */#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include "mdist.h"#include "mdtcp.h"#include "mcast.h"#include "util.h"int main(int argc, char *argv[]) {  int ms,ts;                                      /* multicast/tcp sockets */  struct mdmsg *pkt,*tmp;                         /* receive buffers */  int i,c,r,z;                                    /* counters */  uint32_t l;                                     /* repeat block num */  fd_set rfds;                                    /* 4 select */  struct timeval tv;  long rep=0,tot=0;                               /* stats */  long long size=0;  uint8_t byt;                                    /* single-byte messages */  u_short port=0;                                 /* server port */  struct mdreq *req;                              /* request head */  uint32_t *rqb;                                  /* request body */  char rqbuf[sizeof(struct mdreq)+ROUND*sizeof(uint32_t)];  /* request - buf*/    if (argc<2) {    printf("Usage: client IP [port]\n");    return 0;  }  if (argc>2) port=atoi(argv[2]);     /* Connect to server, get multicast group & port, open multicast socket */  ts = mdtcp_open_client(argv[1],port);  md_init();  if (read_all(ts,&mdini,sizeof(struct mdinit))!=sizeof(struct mdinit))    ERROR("error while reading initial data");  ms = init_mcast_socket(&mdini.group);  /*  set_nonblock(ms); */  /* Init buffers */  pkt = (struct mdmsg *) malloc(MMSIZE);  req=(struct mdreq *) rqbuf;  rqb=(uint32_t *) (rqbuf+sizeof(struct mdreq));    tmp = pkt;  i = ts; if (i<ms) i=ms;  i++;  FD_ZERO(&rfds);  do {    /* Start a segment */    if (read_all(ts,&mdhead,sizeof(struct mdctl))<sizeof(struct mdctl))       ERROR("Error reading segment header");    byt=CLIENT_READY;    write(ts,&byt,1);    c=0;    z=1;    if (mdhead.pkt) do {          /* Read packets from multicast and check tcp for end mark */      FD_SET(ts,&rfds);FD_SET(ms,&rfds);      tv.tv_sec=6;tv.tv_usec=0;      if ((r=select(i,&rfds,0,0,&tv))<0) ERROR("select error");      if (r>0) {        /* Read multicast packet */        if (FD_ISSET(ms,&rfds)) {          if (tmp) pkt = tmp;          r=recv(ms,pkt,MMSIZE,0);          if (r<=0) ERROR("error on multicast socket");           if (r<sizeof(struct mdmsg) ) {            MSG(7,"Truncated packet received (%d bytes)",r);          } else {            if (r!=pkt->siz+sizeof(struct mdmsg)) {              MSG(7,"Truncated packet received (%d of %d bytes)",r,pkt->siz+sizeof(struct mdmsg));             } else {              tmp = md_put(pkt);              if (!tmp) MSG(5,"Malformed packet");              if (tmp && !tmp->siz) c++;            }          }         /* Check tcp, only if there was no data on multicast - there may be more */        } else if (FD_ISSET(ts,&rfds)) {          /* no more data */          MSG(6,"No more data");          if (read(ts,&byt,1)<1)            ERROR("Error on TCP synchronization");          r=0;z=0;        }      }    } while (r>0 && c<mdhead.pkt);    if (c==mdhead.pkt) MSG(6,"All packets received");    if (z && read(ts,&byt,1)<1)       ERROR("Error on TCP synchronization");    req->ack=mdhead.blk;    req->rqc=0;    /* Construct request */    if (c<mdhead.pkt) {      for (l=0;l<mdhead.pkt;l++) if (!mdbuf[l]->siz) {        MSG(6,"Requesting packet %u",l+mdhead.base);        rqb[req->rqc]=l+mdhead.base;        req->rqc++;      }    }    /* Send request */    if (req->rqc>0) {      byt=CLIENT_REQ;      write(ts,&byt,1);      write(ts,req,sizeof(struct mdreq)+(req->rqc)*sizeof(uint32_t));      /* read repeated blocks via TCP */      for (l=0;l<req->rqc;l++) {        if (tmp) pkt = tmp;        r=read_all(ts,pkt,sizeof(struct mdmsg));        if (r!=sizeof(struct mdmsg)) ERROR("Error on tcp socket");        r=read_all(ts,((char *) pkt )+sizeof(struct mdmsg),pkt->siz);        if (r!=pkt->siz) ERROR("Error on tcp socket received %d of %d",r,pkt->siz);        tmp = md_put(pkt);        if (!tmp) ERROR("Malformed packet on tcp socket");        MSG(6,"Received packet %u",pkt->seq);      }       rep+=req->rqc;    }    tot+=mdhead.pkt;size+=mdhead.siz;//    MSG(4,"Received segment: %d bytes in %d packets",mdhead.siz,mdhead.pkt);    fprintf(stderr,"\rnetcast: received %lld bytes in %ld packets %ld repeats",size,tot,rep);    /* Write data to stdout */    if (mdhead.pkt) md_flush(1);    byt=CLIENT_START;    write(ts,&byt,1);  } while (mdhead.pkt);   shutdown(ts,2);  fprintf(stderr,"\nnetcast: done.\n");//  MSG(4,"Total %ld packets %ld repeated",tot,rep);    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆国产自产在线观看| 久久在线观看免费| 久久久综合九色合综国产精品| 国产精品久久久久久久久快鸭| 午夜电影网亚洲视频| 99国产欧美另类久久久精品| 日韩免费看的电影| 韩国欧美一区二区| 欧美精品 日韩| 亚洲精品国产a久久久久久 | 日韩成人一级片| 91在线观看美女| 国产欧美视频在线观看| 狠狠色伊人亚洲综合成人| 欧美日本在线观看| 亚洲午夜在线电影| 色屁屁一区二区| 日韩理论电影院| 成人深夜在线观看| 国产欧美一区二区精品忘忧草| 久久99国产精品久久99果冻传媒| 欧美一区二区三区视频在线| 五月天激情综合网| 欧美日本免费一区二区三区| 亚洲国产日韩a在线播放| www国产精品av| 狠狠色丁香婷婷综合| 亚洲精品视频在线观看网站| 日韩精品一区二区三区视频在线观看| 一区二区三区在线视频观看58| 不卡在线观看av| 国产精品美女久久久久久| www.在线欧美| 亚洲欧洲综合另类| 欧美色综合天天久久综合精品| 夜夜嗨av一区二区三区四季av| 一本一道波多野结衣一区二区| 夜夜嗨av一区二区三区| 欧美日本不卡视频| 日韩专区中文字幕一区二区| 91精品国产综合久久福利| 久久99热这里只有精品| 久久久高清一区二区三区| 成熟亚洲日本毛茸茸凸凹| 综合久久综合久久| 欧美蜜桃一区二区三区| 国产一区二区三区在线观看免费 | 91麻豆精品国产无毒不卡在线观看| 亚洲自拍偷拍网站| 日韩欧美久久久| 成人久久18免费网站麻豆| 亚洲精品美腿丝袜| 欧美久久高跟鞋激| 国产麻豆精品视频| 亚洲精品日日夜夜| 精品国精品自拍自在线| 99久久er热在这里只有精品66| 亚洲影院久久精品| 26uuu精品一区二区在线观看| www.性欧美| 全国精品久久少妇| 国产精品网站导航| 这里只有精品视频在线观看| 国产成都精品91一区二区三| 亚洲综合区在线| 久久久www成人免费毛片麻豆| 一本久道中文字幕精品亚洲嫩| 日本少妇一区二区| 日韩理论片在线| 日韩美女视频在线| 欧美在线不卡一区| 国产乱子轮精品视频| 一区二区免费看| 久久精品视频一区二区三区| 色先锋资源久久综合| 蜜臀久久99精品久久久画质超高清 | 亚洲制服欧美中文字幕中文字幕| 日韩视频在线永久播放| 欧美成人官网二区| 91国产成人在线| 国产成人精品免费一区二区| 日韩不卡免费视频| 又紧又大又爽精品一区二区| 久久久久国产成人精品亚洲午夜| 欧美日韩五月天| 97久久久精品综合88久久| 国产乱国产乱300精品| 亚洲v日本v欧美v久久精品| 国产精品久久久久影视| 精品国产露脸精彩对白| 91精品国产乱| 欧美日韩久久久久久| 色先锋aa成人| 99精品视频免费在线观看| 国产成人免费视频网站| 狠狠色狠狠色综合日日91app| 日韩专区在线视频| 亚洲国产美女搞黄色| 一区二区三区四区在线免费观看| 中文久久乱码一区二区| 国产网站一区二区| 国产婷婷色一区二区三区| 精品处破学生在线二十三| 91精品国产免费| 欧美一区二区私人影院日本| 717成人午夜免费福利电影| 欧美性猛交xxxx黑人交| 91久久精品网| 欧美日韩国产在线观看| 欧美日韩不卡一区二区| 欧美私人免费视频| 9191久久久久久久久久久| 91 com成人网| 欧美成人在线直播| 久久伊人蜜桃av一区二区| 精品国产第一区二区三区观看体验| 精品欧美一区二区在线观看| 欧美sm美女调教| 国产清纯在线一区二区www| 中文一区在线播放| 亚洲天堂成人网| 亚洲国产成人高清精品| 日日夜夜精品视频天天综合网| 日韩成人免费电影| 国内精品伊人久久久久av一坑| 黑人精品欧美一区二区蜜桃 | 麻豆视频观看网址久久| 久久精品国产77777蜜臀| 国产一区二区调教| av一本久道久久综合久久鬼色| 色综合久久久久久久久久久| 欧美日本一区二区三区| 欧美精品一区男女天堂| 国产精品女人毛片| 亚洲永久免费av| 国产在线观看免费一区| 91丨porny丨首页| 欧美日韩国产综合草草| 久久久久久日产精品| 精品在线亚洲视频| aaa欧美日韩| 欧美一级午夜免费电影| 国产欧美在线观看一区| 亚洲综合激情另类小说区| 免费国产亚洲视频| 91在线视频免费观看| 日韩一区二区三| 亚洲色图.com| 激情久久久久久久久久久久久久久久| 成人av片在线观看| 69堂成人精品免费视频| 欧美国产欧美综合| 日韩黄色免费电影| 成人看片黄a免费看在线| 在线播放亚洲一区| 最新高清无码专区| 精品在线你懂的| 精品视频在线看| 欧美国产1区2区| 日韩中文字幕麻豆| 91影视在线播放| 精品成人佐山爱一区二区| 亚洲精品国产精华液| 国产99一区视频免费| 欧美一区二区三区成人| 亚洲激情校园春色| 成人自拍视频在线观看| 精品国产1区2区3区| 亚洲观看高清完整版在线观看| 成人黄色在线视频| 26uuu国产电影一区二区| 亚洲一区二区3| 91在线视频免费观看| 久久久久久久久99精品| 六月丁香婷婷久久| 欧美日韩dvd在线观看| 亚洲婷婷综合色高清在线| 国产精品12区| 精品福利av导航| 九九视频精品免费| 欧美一级专区免费大片| 亚洲福利视频一区| 欧美午夜精品一区二区蜜桃| 中文字幕一区日韩精品欧美| 国产精品羞羞答答xxdd| 久久综合色8888| 精品一区二区三区久久久| 日韩一区二区电影在线| 亚洲h在线观看| 欧美日韩高清不卡| 亚洲国产日韩综合久久精品| 欧美在线免费观看视频| 亚洲成人中文在线| 欧美日韩精品一区二区三区| 亚洲国产精品精华液网站| 欧美人与禽zozo性伦| 免费高清不卡av| 欧美精品一区二区三区久久久 | 欧美激情一区二区在线| 国产精品一区免费视频|