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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ttl.c

?? 《Windows網(wǎng)絡(luò)編程技術(shù)》配套代碼, 給有此書而沒有配套代碼的朋友.
?? C
字號:
// Module: ttl.c
// 
// Description:
//    This is a simple multicast application which illustrates
//    the use of the IP_TTL option to modify the time-to-live
//    field of the IP header similar to the SIO_MULTIPOINT_SCOPE
//    ioctl does except this applies to anykind of IP traffic.
//
// Compile:
//    cl ttl.c ws2_32.lib
//
// Command Line Arguments/Parameters
//    ttl.exe [s|r] ttl
//      s        Sender
//      r        Receiver
//      ttl      Integer TTL value
//
#include <windows.h>
#include <winsock.h>

#include <stdio.h>
#include <stdlib.h>

#define MAX_BUF             2048

#define MULTICAST_IP       "234.5.6.7"
#define MULTICAST_PORT      24000

//
// Function: usage
//
// Description:
//    Prints usage information
//
void usage(char *progname)
{
    printf("usage: %s s|r ttl\n", progname);
    printf("          s = sender\n");
    printf("          r = receiver\n");
    printf("        ttl = multicast TTL value\n");
    ExitProcess(-1);
}

//
// Function: main
//
// Description:
//    Load Winsock, parse the arguments and start either the
//    multicast sender or receiver. Before sending data
//    set the IP_TTL to the specified value.
//
int main(int argc, char **argv)
{
    WSADATA        wsd;
    SOCKET         s;
    struct ip_mreq mcast;
    SOCKADDR_IN    local,
                   from;
    int            ttl, 
                   ttlsz,
                   fromsz,
                   ret;
    char           databuf[MAX_BUF];
    BOOL           bReceive=FALSE;

    // Parse the command line
    //
    if (argc != 3)
        usage(argv[0]);
    if (tolower(argv[1][0]) == 's')
        bReceive = FALSE;
    else if (tolower(argv[1][0]) == 'r')
        bReceive = TRUE;
    else
        usage(argv[0]);

    ttl = atoi(argv[2]);
    //
    // Load winsock
    //
    if (WSAStartup(MAKEWORD(1,1), &wsd))
    {
        printf("WSAStartup failed!\n");
        return -1;
    }
    s = socket(AF_INET, SOCK_DGRAM, 0);
    if (s == INVALID_SOCKET)
    {
        printf("socket() failed: %d\n", WSAGetLastError());
        return -1;
    }
    if (bReceive)
    {
        local.sin_family = AF_INET;
        local.sin_port = htons(MULTICAST_PORT);
        local.sin_addr.s_addr = INADDR_ANY;

        if (bind(s, (SOCKADDR *)&local, sizeof(local)) == SOCKET_ERROR)
        {
            printf("bind() failed: %d\n", WSAGetLastError());
            return -1;
        }
    }
    // Join the multicast group
    //
    mcast.imr_multiaddr.s_addr = inet_addr(MULTICAST_IP);
    mcast.imr_interface.s_addr = INADDR_ANY;

    if (setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP,
        (char *)&mcast, sizeof(mcast)) == SOCKET_ERROR)
    {
        printf("setsockopt(IP_ADD_MEMBERSHIP) failed: %d\n",
            WSAGetLastError());
        return -1;
    } 
    // Set the TTL to our value
    //
    ttlsz = sizeof(ttl);
    if (setsockopt(s, IPPROTO_IP, IP_MULTICAST_TTL,
        (char *)&ttl, sizeof(ttl)) == SOCKET_ERROR)
    {
        printf("setsockopt(IP_MULTICAST_TTL) failed: %d\n",
            WSAGetLastError());
        return -1;
    }
    // Get the TTL to make sure
    //
    if (getsockopt(s, IPPROTO_IP, IP_MULTICAST_TTL,
        (char *)&ttl, &ttlsz) == SOCKET_ERROR)
    {
        printf("getsockopt(IP_MULTICAST_TTL) failed: %d\n",
            WSAGetLastError());
        return -1;
    }
    printf("Multicast TTL is set to: %d\n", ttl);

    if (bReceive)
    {
        // Receive some data
        //
        fromsz = sizeof(from);
        ret = recvfrom(s, databuf, MAX_BUF, 0, 
                (SOCKADDR *)&from, &fromsz);
        if (ret == SOCKET_ERROR)
        {
            printf("recvfrom() failed: %d\n", WSAGetLastError());
            return -1;
        }
        databuf[ret] = 0;
        printf("read: [%s] from [%s]\n", databuf, inet_ntoa(from.sin_addr));
    }
    else
    {
        // Send some data
        //
        SOCKADDR_IN to;

        memset(databuf, '%', MAX_BUF);

        to.sin_family = AF_INET;
        to.sin_port = htons(MULTICAST_PORT);
        to.sin_addr.s_addr = inet_addr(MULTICAST_IP);

        ret = sendto(s, databuf, MAX_BUF-1, 0, (SOCKADDR *)&to,
                sizeof(to));
        if (ret == SOCKET_ERROR)
        {
            printf("sendto() failed: %d\n", WSAGetLastError());
            return -1;
        }
        printf("Sent %d bytes to %s\n", ret, inet_ntoa(to.sin_addr));
    }
    // Cleanup
    //
    closesocket(s);
    WSACleanup();

    return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品18久久久久| 亚洲最大色网站| 韩国中文字幕2020精品| 欧美日韩国产经典色站一区二区三区 | 国产精品理伦片| 成人国产电影网| 亚洲欧美视频一区| 欧美撒尿777hd撒尿| 美女在线观看视频一区二区| 精品国产一区二区三区久久久蜜月 | 欧美精品一区二区三区久久久| 国产一区二区按摩在线观看| 国产精品久久久久久亚洲毛片| 99久久精品免费看国产免费软件| 一区二区三区蜜桃| 欧美一区二区三区在线观看| 国产精品一卡二卡| 亚洲精品视频在线看| 91麻豆精品国产91久久久资源速度 | 理论片日本一区| 国产午夜精品一区二区三区嫩草| 91在线国产福利| 日韩国产欧美一区二区三区| 久久久亚洲国产美女国产盗摄| 99久久精品费精品国产一区二区| 亚洲国产日韩一级| 欧美精品一区二区三区久久久| av欧美精品.com| 美女一区二区视频| 亚洲天堂2016| 精品国产亚洲一区二区三区在线观看| zzijzzij亚洲日本少妇熟睡| 视频一区在线播放| 国产精品麻豆久久久| 88在线观看91蜜桃国自产| 国产91精品在线观看| 亚洲国产一二三| 国产精品素人视频| 91精品国产一区二区三区香蕉| 94色蜜桃网一区二区三区| 免费成人在线影院| 亚洲综合色区另类av| 欧美高清在线视频| 欧美电影免费观看高清完整版在线观看 | 极品少妇xxxx精品少妇偷拍| 亚洲另类春色校园小说| 337p粉嫩大胆噜噜噜噜噜91av| 在线观看国产一区二区| 99视频一区二区三区| 久久丁香综合五月国产三级网站| 亚洲一区中文在线| 亚洲欧洲日产国产综合网| 精品国产伦理网| 欧美老女人在线| 欧美亚洲丝袜传媒另类| 成人激情图片网| 国产精品综合av一区二区国产馆| 图片区日韩欧美亚洲| 亚洲欧洲av色图| 久久久三级国产网站| 日韩女优制服丝袜电影| 欧美高清激情brazzers| 欧美制服丝袜第一页| 91美女精品福利| 99在线精品一区二区三区| 国产成a人亚洲精品| 国产精品一区二区三区四区| 裸体一区二区三区| 欧美aaaaa成人免费观看视频| 午夜精品免费在线| 亚洲成a人v欧美综合天堂下载| 一区二区三区日韩精品| 亚洲免费观看在线观看| 亚洲另类春色校园小说| 亚洲一区在线免费观看| 夜夜爽夜夜爽精品视频| 亚洲福利一区二区三区| 亚洲线精品一区二区三区| 亚洲一区在线观看视频| 亚洲午夜激情网页| 日韩中文字幕91| 日本aⅴ精品一区二区三区 | 国产精品1区2区3区在线观看| 精品一区二区在线看| 久久99蜜桃精品| 国产一区二区三区免费看| 精品一区二区三区av| 国产成人免费在线观看| 成人精品小蝌蚪| 色婷婷精品大视频在线蜜桃视频| 欧美中文字幕不卡| 5月丁香婷婷综合| 精品国产3级a| 狠狠色狠狠色综合日日91app| 国模大尺度一区二区三区| 国产成人在线视频播放| 99精品国产99久久久久久白柏| 色噜噜夜夜夜综合网| 欧美日韩国产精品自在自线| 日韩久久久精品| 久久九九99视频| 亚洲女人的天堂| 日韩电影在线观看电影| 黑人精品欧美一区二区蜜桃| zzijzzij亚洲日本少妇熟睡| 欧美午夜在线一二页| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲欧洲另类国产综合| 亚洲一级二级在线| 国产在线播精品第三| 99视频热这里只有精品免费| 欧美精品v日韩精品v韩国精品v| 精品国产一区二区三区四区四 | 精品国精品自拍自在线| 国产欧美精品区一区二区三区 | 日韩欧美高清dvd碟片| 日本一二三四高清不卡| 亚洲 欧美综合在线网络| 国产精品一二三| 91国在线观看| 国产亚洲精品精华液| 国产成人av网站| 在线播放国产精品二区一二区四区| 日韩欧美在线123| 国产精品欧美久久久久无广告| 午夜欧美一区二区三区在线播放| 国产成人免费在线观看| 欧美日韩大陆一区二区| 亚洲国产精品国自产拍av| 琪琪久久久久日韩精品| 色av一区二区| 久久免费视频色| 亚洲成人免费在线观看| 99久久er热在这里只有精品66| 日韩视频不卡中文| 亚洲综合区在线| 99久久久精品| 亚洲国产成人在线| 九九国产精品视频| 欧美高清视频不卡网| 亚洲宅男天堂在线观看无病毒| 成人精品免费看| 久久婷婷成人综合色| 欧美aⅴ一区二区三区视频| 欧美中文字幕亚洲一区二区va在线| 国产午夜精品理论片a级大结局 | 亚洲美女偷拍久久| 成人综合在线网站| 久久一夜天堂av一区二区三区 | 久久99久久精品| 3d成人动漫网站| 水野朝阳av一区二区三区| 色菇凉天天综合网| 亚洲日本欧美天堂| 99久久综合色| 国产精品欧美一级免费| 久久综合九色欧美综合狠狠| 亚洲成人精品一区| 91女厕偷拍女厕偷拍高清| 国产精品电影一区二区三区| 国产精品88av| 亚洲国产精品成人综合| 国产成人av一区二区| 久久久.com| 成人精品视频一区二区三区尤物| 国产欧美精品国产国产专区 | 91丝袜呻吟高潮美腿白嫩在线观看| 久久色.com| 国产电影一区在线| 国产精品视频你懂的| 成人黄色小视频| 中文字幕色av一区二区三区| 成人黄色免费短视频| 国产精品久久久久久久久免费丝袜| 成人高清视频免费观看| 国产精品第四页| 在线一区二区三区做爰视频网站| 亚洲男人天堂一区| 欧美日韩精品一区二区三区| 五月婷婷另类国产| 欧美tk—视频vk| 国产激情视频一区二区在线观看 | 亚洲精品五月天| 欧美日韩大陆在线| 欧美三级韩国三级日本一级| 亚洲成人动漫av| 精品捆绑美女sm三区| 懂色av一区二区三区蜜臀| 1区2区3区精品视频| 精品视频1区2区| 韩国午夜理伦三级不卡影院| 国产精品久久久久一区| 欧美亚洲免费在线一区| 久久99久久99| 亚洲人成精品久久久久| 欧美一区二区播放| 国产成人夜色高潮福利影视| 亚洲欧美成人一区二区三区| 91精品一区二区三区久久久久久| 国产一区二区在线观看免费|