最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python中socket网络编程的详细介绍(附示例)

来源:动视网 责编:小采 时间:2020-11-27 14:11:41
文档

python中socket网络编程的详细介绍(附示例)

python中socket网络编程的详细介绍(附示例):本篇文章给大家带来的内容是关于python中socket网络编程的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。网络通信的三要素IP通信的时候, 双方必须知道对方的标识, 好比发邮件必须知道对方的邮件地址。 互联网上每个
推荐度:
导读python中socket网络编程的详细介绍(附示例):本篇文章给大家带来的内容是关于python中socket网络编程的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。网络通信的三要素IP通信的时候, 双方必须知道对方的标识, 好比发邮件必须知道对方的邮件地址。 互联网上每个
 本篇文章给大家带来的内容是关于python中socket网络编程的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

网络通信的三要素

  • IP

  • 通信的时候, 双方必须知道对方的标识, 好比发邮件必须知道对方的邮件地址。 互联网上每个计算机的唯一标识就是IP地址, 类似 123.123.123.123 。

    IP地址实际上是一个32位整数(称为IPv4) , 以字符串表示的IP地址,如 192.168.0.1 实际上是把32位整数按8位分组后的数字表示, 目的是便于阅读。
    IPv6地址实际上是一个128位整数, 它是目前使用的IPv4的升级版, 以字符串表示。类似于 2001:0db8:85a3:0042:1000:8a2e:0370:7334 。
  • 端口port

  • 在两台计算机通信时, 只发IP地址是不够的, 因为同一台计算机上跑着多个网络程序。 一个IP包来了之后, 到底是交给浏览器还是QQ, 就需要端口号来区分。

    每个网络程序都向操作系统申请唯一的端口号, 这样, 两个进程在两台计算机之间建立网络连接就需要各自的IP地址和各自的端口号。

  • TCP/UDP协议

  • 为了把全世界的所有不同类型的计算机都连接起来, 就必须规定一套全球通用的协议,大家把互联网的协议简称TCP/IP协议

    socket编程

    Socket是网络编程的一个抽象概念。 通常我们用一个Socket表示“打开了一个网络链接”, 而打开一个Socket需要知道目标计算机的IP地址和端口号, 再指定协议类型即可。

    import socket
    # socket.gethostname()当不传入参数时,返回本机主机名
    print(socket.gethostname()) #DESKTOP-EN0LQJH
    
    #域名(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称
    #通过域名查找服务器IP地址
    print(socket.gethostbyname('www.baidu.com')) #119.75.216.20
    
    #通过一个IPv4的地址来获取主机信息
    print(socket.gethostbyaddr('114.114.114.114'))
    
    #通过IP/port组合,访问服务器信息
    # 如果是AF_INET则格式为:(address, port),如果为AF_INET6,则返回(address, port, flow info, scope id)
    
    print(socket.getaddrinfo('www.xunlei.com',80))

    用socket实现简易的web服务器

    import socket
    def reply_info(socketObj):
     # socketObj.send('ok')
     with open('hello.html') as f:
     socketObj.send(f.read().encode('utf-8'))
    if __name__=="__main__":
     #1. 创建socket对象
     socket_server = socket.socket()
     #2. 绑定IP和端口
     socket_server.bind(('192.168.1.165',9999))
     print("服务器端已经启动9999端口......")
     #3. 监听是否有客户端连接
     socket_server.listen(5)
    
     while True:
     # 4. 接受客户端的连接
     socket_client,address = socket_server.accept()
     # 5. 接收客户端发来的信息
     data = socket_client.recv(1024)
     # 6. 与客户端进行交互, 返回给客户端信息
     reply_info(socket_server)
     socket_server.close()

    文档

    python中socket网络编程的详细介绍(附示例)

    python中socket网络编程的详细介绍(附示例):本篇文章给大家带来的内容是关于python中socket网络编程的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。网络通信的三要素IP通信的时候, 双方必须知道对方的标识, 好比发邮件必须知道对方的邮件地址。 互联网上每个
    推荐度:
    标签: 网络 示例 so
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top