• udp通信的原理---makefile文件


    由于UDP通信不需要事先建立连接,因此不需要TCP中的connect函数。

    服务器端的步骤如下:

    1. socket:      建立一个socket

    2. bind:          将这个socket绑定在某个端口上(AF_INET)

    3. recvfrom:  如果没有客户端发起请求,则会阻塞在这个函数里

    4. close:        通信完成后关闭socket

    客户端的步骤如下:

    1. socket:      建立一个socket

    2. sendto:     相服务器的某个端口发起请求(AF_INET)

    3. close:        通信完成后关闭socket

     

    可以看到,和TCP相比,步骤少了一些。

    这里我们用到了两个新的函数:

    int recvfrom(int sockfd, void * buf, size_t len, int flags, struct sockaddr * src_addr, socklen_t * addrlen);

    int sendto(int sockfd, const void * buf, size_t len, int flags, const struct sockaddr * dest_addr, socklen_t addrlen);

    recvfrom用于接收数据,sendto用于发送数据

    recvfrom:

    socket:socket套接字

    buf:接收到的数据的存放位置

    flags:一般情况下为0

    src_addr:接收的源地址

    addrlen:地址长度

    sendto:

    socket:socket套接字

    buf:要发送的数据的起始地址

    flags:一般情况下为0

    dest_addr:发送到的目的地址

    addrlen:地址长度

    还是先上代码:

    Makefile:

     
    1. all: server.c client.c  
    2.     gcc -Wall client.c -o client  
    3.     gcc -Wall server.c -o server  
    4.   
    5. clean:  
    6.     rm -rf *.o client server  
  • 相关阅读:
    Linq to OBJECT延时标准查询操作符
    LINQ to XML
    动态Linq(结合反射)
    HDU 1242 dFS 找目标最短路
    HDu1241 DFS搜索
    hdu 1224 最长路
    BOJ 2773 第K个与m互质的数
    ZOJ 2562 反素数
    2016 ccpc 杭州赛区的总结
    bfs UESTC 381 Knight and Rook
  • 原文地址:https://www.cnblogs.com/dpf-learn/p/6223201.html
Copyright © 2020-2023  润新知