zoukankan      html  css  js  c++  java
  • delphi winsock 函数详解[转]

    1、WSAStarup函数
    用于初始化Winsock
    [声明]
    int WSAStarup(WORD wVersionRequested,LPWSADATA lpWSAData);
    [参数]
    wVersionRequested - 要求使用Winsock的最低版本号
    lpWSAData - Winsock的详细资料
    [返回值]
    当函数成功调用时返回0
    失败时返回非0的值

    2、socket函数
    用于生成socket(soket Descriptor)
    [声明]
    SOCKET socket(int af,int type,int protocol);
    [参数]
    af - 地址家族(通常使用:AF_INET)
    type - socket的种类
    SOCK_STREAM : 用于TCP协议
    SOCK_DGRAM : 用于UDP协议
    protocol - 所使用的协议
    [返回值]
    当函数成功调用时返回一个新的SOCKET(Socket Descriptor)
    失败时返回INVALID_SOCKET.

    3、inet_addr函数
    把好象"xxx.xxx.xxx.xxx"的10进制的IP地址转换为32位整数表示方法
    [声明]
    unsigned long inet_addr ( const char FAR *cp );
    [参数]
    cp - 指向用"xxx.xxx.xxx.xxx"的10进制来表示的IP地址字符串的指针
    [返回值]
    当函数成功调用时返回用32位整数表示的IP地址(按网络字节排列顺序)
    失败时返回INADDR_NONE.

    4、gethostbyname函数
    可以从主机名获取主机资料.
    [声明]
    struct hostent FAR * gethostbyname ( const char FAR *name );
    [参数]
    name - 指向主机名字符串的指针
    [返回值]
    当函数成功调用时返回主机信息
    失败时返回NULL(空值)

    5、Bind函数
    指定本地IP地址所使用的端口号时候使用
    [声明]
    int bind ( SOCKET s , const struct sockaddr FAR *addr , int namelen );
    [参数]
    s - 指向用Socket函数生成的Socket Descriptor
    addr - 指向Socket地址的指针
    namelen - 该地址的长度.
    [返回值]
    当函数成功调用时返回0
    调用失败时返回 SOCKET_ERROR

    6、connect函数
    用于与服务器建立连接,发出连接请求,必须在参数中指定服务器的IP地址和端口号
    [声明]
    int connect (SOCKET s , const struct sockaddr FAR *name , int namelen );
    [参数]
    s - 指向用Socket函数生成的Socket Descriptor
    name - 指向服务器地址的指针
    namelen - 该地址的长度.
    [返回值]
    当函数成功调用时返回0
    调用失败时返回 SOCKET_ERROR

    7、select函数
    可以用于调查一个或多个SOCKET的状态.
    [声明]
    int select ( int nfds , fd_set FAR *readfds , fd_set FAR *writefds , fd_set FAR *exceptfds , const struct timeval FAR *timeout );
    [参数]
    nfds - 在WINDOWS SOCKET API 中该参数可以忽略,通常赋予NILL值
    readfds - 由于接受的SOCKET设备的指针
    writefds - 用于发送数据的SOCKET设备的指针
    exceptfds - 检查错误的状态
    timeout - 超时设定
    [返回值]
    返回大于0的值时,表示与条件相符的SOCKET数
    返回0表示超时
    失败时返回SOCKET_ERROR

    8、recv函数
    利用Socket进行接受数据.
    [声明]
    int recv ( SOCKET s , char FAR *buf , int len , int flags );
    [参数]
    s - 指向用Socket函数生成的Socket Descriptor
    buf - 接受数据的缓冲区(数组)的指针
    len - 缓冲区的大小
    flag - 调用方式(MSG_PEEK 或 MSG_OOB)
    [返回值]
    成功时返回收到的字节数.
    如果连接被中断则返回0
    失败时返回 SOCKET_ERROR

    9、sendto函数
    利用Socket进行发送数据.
    [声明]
    int sendto ( SOCKET s , const char FAR *buf , int len , int flags , const struct sockaddr FAR *to , int token );
    [参数]
    s - 指向用Socket函数生成的Socket Descriptor
    buf - 接受数据的缓冲区(数组)的指针
    len - 缓冲区的大小
    flag - 调用方式(MSG_DONTROUTE , MSG_OOB)
    to - 指向发送方SOCKET地址的指针
    token - 发送方SOCKET地址的大小
    [返回值]
    成功时返回已经发送的字节数.
    失败时返回SOCKET_ERROR

  • 相关阅读:
    ECharts之柱状图 饼状图 折线图
    Vue自定义指令(directive)
    HDU 1231 最大连续子序列
    POJ 2533 Longest Ordered Subsequence
    HDU 1163 Eddy's digital Roots
    HDU 2317 Nasty Hacks
    HDU 2571 命运
    HDU 4224 Enumeration?
    HDU 1257 最少拦截系统
    HDU 2740 Root of the Problem
  • 原文地址:https://www.cnblogs.com/railgunman/p/1884789.html
Copyright © 2011-2022 走看看