zoukankan      html  css  js  c++  java
  • socket套接字模块

    一、what

    socket模块就是应用层与tcp/ip协议族通信的中间层——抽象层

    它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

    所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。

    基于文件类型的套接字族 AF_UNIX

    基于网络类型的套接字族 AF_INET

    二、基于TCP的套接字

    服务端

    ss = socket() #创建服务器套接字
    ss.bind()      #把地址绑定到套接字
    ss.listen()      #监听链接
    inf_loop:      #服务器无限循环
        cs = ss.accept() #接受客户端链接
        comm_loop:         #通讯循环
           cs.recv()/cs.send() #对话(接收与发送)
         cs.close()    #关闭客户端套接字
    ss.close()        #关闭服务器套接字(可选)

    客户端

    cs = socket()    # 创建客户套接字
    cs.connect()    # 尝试连接服务器
    comm_loop:        # 通讯循环
       cs.send()/cs.recv()    # 对话(发送/接收)
    cs.close()            # 关闭客户套接字

    三、基于UDP的套接字

    ps:udp是无链接的,先启动哪一端都不会报错

    UDP服务端

    ss = socket()   #创建一个服务器的套接字
    ss.bind()       #绑定服务器套接字
    inf_loop:       #服务器无限循环
       cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送)
    ss.close()                         # 关闭服务器套接字

    UDP客户端

    cs = socket()   # 创建客户套接字
    comm_loop:      # 通讯循环
       cs.sendto()/cs.recvfrom()   # 对话(发送/接收)
    cs.close()                      # 关闭客户套接字

    ps:但是由于UDP的安全性不足,一般用于聊天功能


  • 相关阅读:
    SpringBoot自定义错误页面,SpringBoot 404、500错误提示页面
    SpringBoot切换Tomcat容器,SpringBoot使用Jetty容器
    SpringBoot 国际化配置,SpringBoot Locale 国际化
    SpringBoot Logback配置,SpringBoot日志配置
    SpringBoot thymeleaf使用方法,thymeleaf模板迭代
    SpringBoot thymeleaf模板页面没提示,SpringBoot thymeleaf模板插件安装
    JSP判断闰年
    JSP求和计算
    JSP指令
    jsp新建项目
  • 原文地址:https://www.cnblogs.com/bailongcaptain/p/12739407.html
Copyright © 2011-2022 走看看