zoukankan      html  css  js  c++  java
  • UDP通信

    UDP与TCP:

    TCP:传输控制协议,提供面向连接、可靠地数据流服务。客户与服务器进行通信的过程中必须在双方之间建立TCP协议,TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能都在双方之间传送。

    UDP:用户数据包协议,简单的面向数据包的运输层协议。因为没有严格的校验与检查机制,因而能够进行快速的数据传输。

    进行UDP通信的首要步骤:必须加载相应版本的socket。本文中提供两种方式对UDP通信编程。

    MFC:

    在MFC中只需要加载AfxSocketInit()函数加载,头文件<afxSocket.h>

    相关函数:

    socket(int af ,int type,int protocal)

             af:地址描述,目前只支持AF_INET :ARPA Internet格式

             type:socket类型,TCP(SOCK_STREAM)和UDP(SOCK_DGRAM)等

             protocal:套接口所用的协议,0表示无协议,IPPROTO_TCP、IPPTOTO_UDPIPPROTO_SCTP、  IPPROTO_TIPC等,它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议。

    SOCKADDR:通用地址结构,统一参与windows套接字通信的计算机上的一个通信的协议。一般使用SOCKADDR_IN数据结构进行操作,由于Microsoft TCP/IP套接字开发人员的工具箱仅支持internet地址字段,而实际填充字段的每一部分则遵循sockaddr_in数据结构,两者大小都是16字节,所以二者之间可以进行切换。

    struct socketaddr_in
    {
        short int sin_family;       //指代协议族,socket编程中只能是AF_INET
        unsigned short int sin_port;  // 存储端口号(使用网络字节顺序)
         struct int_addr sin_addr;      // 存储IP地址,使用in_addr这个数据结构
        unsigned char sin_zero[8]; // 为了让ssocketaddr_in与ocketaddr保持大小相同而保留的空字节
    }
    
    typedef struct in_addr
    {
        union
        {
            //三种存储IP地址的联合体,第一种四个字节表示IP地址的四个数字,第二种
            //用两个双字节来表示IP地址
            //第三种用一个长整形来表示IP地址
            struct{unsigned char s_b1,s_b2,s_b3,s_b4;}S_un_b;
            struct{unsigned short s_w1,s_w2;}S_un_w;
            unsigned long S_addr;
        }S_un;
    }IN_ADDR

    inet_ntoa( struct in_addr in)将一个IP转换成一个互联网标准点分格式的字符串,正确就返回一个存储着点分格式IP地址的静态缓冲区,错误返回NULL;

    int PASCAL FAR bind( SOCKET s/*套接口描述字*/, const struct sockaddr FAR* name/*赋予套接口地址*/,int namelen/*套接口地址长度*/);

    添加线程接受数据

           创建线程数据结构体--->CreateThread()---->添加线程函数(线程函数不能为类的成员函数,可以通过定义为类的静态成员函数)---->RecvForm()函数

     

  • 相关阅读:
    S3C2440实现dm9000网卡驱动程序移植
    IMX257虚拟网卡vnet驱动程序
    ram_flash驱动
    S3C2440 nor_flash驱动程序
    Java 打印* 三角形
    Java系列学习说明
    java案例1,打印hello java
    zabbixproxy安装
    python鉴黄程序
    mssql发布订阅事项
  • 原文地址:https://www.cnblogs.com/jackcin/p/3230658.html
Copyright © 2011-2022 走看看