• 套接字基本常识


    从程序的角度来看,套接字的概念与文件句柄的概念相似,它是一个句柄代表网络协议中的一组数据.这组数据包括TCP连接中双方的IP地址和连接状态等.

    流套接字提供双向有序,无重复并且没有记录边界的数据流服务.

    数据报套接字岁让支持双向的数据流,但不保证数据是可靠的,有序的和无重复的.

    SOCKET s=socket();

    if(INVALID_SOCKET==S)

    {//失败.}

    协议特征

    面向连接(可靠性,准确性)与面向无连接(数据报,效率高).  可靠性与次序性.  面向消息(对每个离散命令来说,如果传输协议把每条命令作为独立的消息进行传输).

    部分消息(只用于面向消息的协议). 从容关闭(一方即使关闭连接,但对方仍然可以读取网络堆栈中的数据).  路由选择.   广播数据.

    阻塞模式:套接字在执行操作事,调用函数在没有完成操作之前不会立即返回到工作模式.一般是用于少量数据接受和发送的简单网络程序.


    Windows Sockets 分别提供了  套接字模式 和 套接字I/O模型.
    套接字模式有阻塞和非阻塞 两种工作模式. 套接字I/O模型描述了一个应用程序如果对套接字上的I/O进行管理.

    使用socket()和WSASocket()创建套接字时,默认的是阻塞. 但并不是所有以阻塞套接字为参数调用都会发生阻塞.例如 bind().listen()...

    inet_ntoa()和inet_add()实现网络地址和 . 间隔的字符串地址之间的转换.

    ntohs();

     

    套接字在非阻塞模式中,调用的函数不管操作是否完成都会立即返回.

    ioctlsocket()可将套接字设置为非阻塞模式. 

    Select模型是Windows Sockets中最常见的I/O模型. 核心函数 Select(). 判断当前各个套接字的当前状态.根据该函数的返回值,判断套接字的可读可写性. 需要用到的FD_SET.FD_ZERO.FD_ISSET和FD_CLR4这些宏.

    WSAAsyncSelect 模型是Windows Sockets的一个异步I/O模型. 非阻塞模式. 利用该模型可以在一个套接字上,接受Windows消息为基础的网络事件. Windows Sockets应用程序在创建套接字后,调用WSAAsyncSlect()函数注册感兴趣的网络事件.

  • 相关阅读:
    css3 jQuery实现3d搜索框+为空推断
    simple_pool对象池——优化<二>
    微信支付v3开发(6) 收货地址共享接口
    一个简单的数据增量更新策略(Android / MongoDB / Django)
    cocos2dx 3.0rc怎样创建项目
    NYOJ 613 免费馅饼
    NLP系列(5)_从朴素贝叶斯到N-gram语言模型
    Swift开发图解入门
    java网络编程
    java多线程机制
  • 原文地址:https://www.cnblogs.com/lvpblog/p/2545796.html
Copyright © 2020-2023  润新知