VC下的TCP/IP通信(二)

     三 bind 函数

     该函数功能是将创建好的套接字绑定到本地的某个地址和端口上。

     函数声明:

    int bind(SOCKET s,const struct sockaddr FAR* name,int namelen

     参数说明:

     s:指定要绑定的套接字;

     name:指定本地地址信息,这是一个指向sockAddr结构的指针变量,由于该地址结构是以地址家族准备的,这个结构随所使用的网络协议不同而不同。

 

     四 sockaddr结构的介绍。

         sockaddr 结构的声明:

         struct sockaddr {
             unsigned short sa_family;
              char sa_data[14];
          };

       说明:

          sa_family :地址家族,IP地址家族的值只能设为AF_INET

          sa_data     :  占位作用,要求一块内存空间,可以用该区域指定与协议相关的具体信息。

     五 sockaddr_in结构体

          在其于TCP/IP编程时,可以使用此结构体来替换sockaddr结构体。

        struct sockaddr_in{
             short sin_family;
             unsigned short sin_port;
             struct in_addr sin_addr;
             char sin_zero[8];
           };

        说明:

        sin_family:地址家族,同样对于IP地址,该值一直设置为AF_INET.

        sin_port :Ip端口,用于分配给socket的端口号。

        sin_addr:Ip地址,给于socket的主机IP地址。

        sin_zer : 点位,目的使sockaddr_in与sockaddr长度一致。

 

     六  listen函数

          该函数是将指定的socket设为监听模式

         int listen(
             SOCKET s,
            int backlog

          );

        参数说明:

         s:是套接字描述

         backlog:是等待连接队列的最大长度,如果设置为SOMAXCONN,那么下层的服务提供者将负责将这个套接字设置为最大的合理值。注意的是,设置这个值是为了设置等待连接队列的最大长度,而不是在一个端口上同时可以进行连接的数目。如,将backlog设为2时,当有3个请求同时到时,前两个连接被放到等待的队列中,而有一个请求被拒绝请求。之后依然可以请求。

 

       七 accept函数

        该函数接受客户端发送的连接请求。

      SOCKET accept(
            SOCKET s,
            struct sockaddr FAR* addr,
            int FAR* addrlen

         );

      参数说明

          s:   套接字描述符,该套接字已经为通过listen函数将其设置为监听状态;

         addr:是指向一个缓冲区的指针,该缓冲区用来连接实体的地址,也就是当客户端向服务器发起连接,服务器端接受这个连接时,保存发起连接的这个客户端的IP地址信息与端口信息;

        addrlen:一个返回值,指向一个整型的指针,返回包含地址信息的长度。

      

    八:send函数

       该函数通过一个已建立的套接字发送数据。

       int send(
                 SOCKET s,
                  const char FAR* buf,
                 int len,
                 int flags
         );

       参数说明:

      s: 是一个已建立连接的套接字;

     buf:指向一个缓冲区,该缓冲区包含将要传递的数据。

     len:是缓冲区的长度;

     flags:设定的值将影响函数的行为,一般将其设置为0即可。

   九:recv函数

     该函数从一个已建立的套接字里接收数据。

    int recv(
            SOCKET s,
            char* buf,
            int len,
            int flags
    );

   
    参数说明

     s:已建立连接的套接字。

     buf:是指向一个缓冲区的指针,用来保存接受到的数据。

     len:缓冲区的长度。

     flags:与send函数中的flags参数是相同的!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值