TCP服务器 客户端建立

 TCP服务器建立的步骤:

    1.  调用socket建立TCP 套接字

    2.   调用bind将套接字跟本地地址绑定    
    int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen);
    sockfd参数为调用socket函数后返回的文件描述符。
    my_addr参数为指向sockaddr结构体的指针(该结构体中保存有端口和IP地址信息)。
    addlen参数为结构体    sockaddr的长度.
    错误信息:
EACCES:地址受到保护,用户非超级用户。
EADDRINUSE:指定的地址已经在使用。
EBADF:sockfd参数为非法的文件描述符。
EINVAL:socket已经和地址绑定。
ENOTSOCK:参数sockfd为文件描述符。

    3.  调用listen建立监听
    int listen(int sockfd, int backlog);
     listen函数可使得流套接字sockfd处于监听状态,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程。在TCP服务器编程中listen函数把进程变为一个    服务器,并指定相应的套接字变为被动连接。处于监听状态的套接字sockfd将维护一个客户连接请求队列,该队列最多容纳backlog个用户请求。

    4.  建立accept接受来自客户端的连接,返回新的连接套接字
    int accept(int sockfd, struct sockaddr* addr, socklen_t* len);
    accept默认会阻塞进程,直到有一个客户连接建立后返回,它返回的是一个新可用的套接字,这个套接字是连接套接字。
    参数sockfd就是上面解释中的监听套接字,这个套接字用来监听一个端口,当有一个客户与服务器连接时,它使用这个一个端口号,而此时这个端口号正与这个套    接字关联。
    参数addr 是一个结果参数,它用来接受一个返回值,这返回值指定客户端的地址。可以为NULL
    参数len 也是结果的参数,用来接受上述addr的结构的大小的,它指明addr结构所占有的字节个数。可以为NULL

    5.  在新的套接字上面,调用send/recv实现跟客户端的通信。


  TCP 客户端建立的步骤:

    1.  调用socket建立 TCP 套接字

    2.  调用connect实现跟服务器端的连接

    3.  调用send/recv实现跟服务器端的通信


   无论是在服务器端还是客户端,要关闭连接,调用closesocket即可。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值