python网络编程 使用UDP、TCP协议收发信息详解

 更新时间:2019年08月29日 10:53:06   作者:三国小梦  
这篇文章主要介绍了python网络编程 使用UDP、TCP协议收发信息详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

UDP

UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。 UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内。 UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。

udp通信模型中,在通信开始之前,不需要建立相关的链接,只需要发送数据即可,类似于生活中,"写信"。

客户端:

from socket import socket,AF_INET,SOCK_DGRAM
# 创建套接字,SOCK_DGRAM使用udp协议
udp = socket(AF_INET, SOCK_DGRAM)
# 目的端口和ip
ip = "127.0.0.1"
port = 8080
# 循环从键盘输入发送消息
while True:
  data = input("请输入发送的数据:")
  udp.sendto(data.encode("utf-8"), (ip, port))

服务端:

from socket import socket, AF_INET, SOCK_DGRAM
udp = socket(AF_INET, SOCK_DGRAM)
# 绑定端口,服务端必须要绑定端口
udp.bind(("", 8080))
while True:
  # 接受数据,每次接受1024字节
  recvData = udp.recvfrom(1024)
  # 拆包
  data, info = recvData
  # 打印
  print("[%s]:%s" % (info, data.decode("utf-8")))

TCP

udp通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,"打电话"。

客户端:

from socket import socket,AF_INET,SOCK_STREAM
# 创建套接字,SOCK_STREAM表示使用tcp协议
clientSocket = socket(AF_INET,SOCK_STREAM)
# 连接服务器
clientSocket.connect(("127.0.0.1",8080))
# 发送数据
while True:
  s = input("请输入要发送的数据:")
  clientSocket.send(s.encode("utf-8"))

服务端:

from socket import socket, AF_INET, SOCK_STREAM
tcp = socket(AF_INET, SOCK_STREAM)
# 绑定端口
tcp.bind(("", 8080))
# listen的参数代表可建立socket连接的最大个数 windows,mac 此连接参数有效 Linux 此连接参数无效,默认最大
tcp.listen()
# 有新的客户端连接时,
# clientSocket表示一个新的套接字
# clientInfo 表示新客户端的ip及端口号
while True:
  clientSocket, clientInfo = tcp.accept()
  try:
    while True:
      recvData = clientSocket.recv(1024)
      # 如果接受的的数据为空就退出
      if not recvData:
        break
      print("%s:%s" % (str(clientInfo), recvData.decode("utf-8")))
  finally:
    clientSocket.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 使用Python+Flask开发博客项目并实现内网穿透

    使用Python+Flask开发博客项目并实现内网穿透

    Flask是一个使用python编写的轻量级Web框架,这篇文章我们将使用这个框架编写一个属于自己的博客网站!并教你如何通过使用内网穿透工具处理项目,让本地的项目可以在公网访问,感兴趣的可以了解一下
    2021-11-11
  • 用pandas按列合并两个文件的实例

    用pandas按列合并两个文件的实例

    下面小编就为大家分享一篇用pandas按列合并两个文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • mac PyCharm添加Python解释器及添加package路径的方法

    mac PyCharm添加Python解释器及添加package路径的方法

    今天小编就为大家分享一篇mac PyCharm添加Python解释器及添加package路径的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 使用Python来编写HTTP服务器的超级指南

    使用Python来编写HTTP服务器的超级指南

    这篇文章主要介绍了使用Python来编写HTTP服务器的超级指南,同时介绍了基于Python框架的web服务器的编写方法,译文从理论到实现讲得都很生动详细,十分推荐!需要的朋友可以参考下
    2016-02-02
  • pyqt远程批量执行Linux命令程序的方法

    pyqt远程批量执行Linux命令程序的方法

    今天小编就为大家分享一篇pyqt远程批量执行Linux命令程序的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Pytorch修改ResNet模型全连接层进行直接训练实例

    Pytorch修改ResNet模型全连接层进行直接训练实例

    在本篇文章里小编给大家整理的是关于Pytorch修改ResNet模型全连接层进行直接训练相关知识点,有需要的朋友们参考下。
    2019-09-09
  • python将下载到本地m3u8视频合成MP4的代码详解

    python将下载到本地m3u8视频合成MP4的代码详解

    这篇文章主要介绍了python将下载到本地m3u8视频合成MP4的代码详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Python中lambda表达式的用法示例小结

    Python中lambda表达式的用法示例小结

    本文主要展示了一些lambda表达式的使用示例,通过这些示例,我们可以了解到lambda表达式的常用语法以及使用的场景,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • Python利用WMI实现ping命令的例子

    Python利用WMI实现ping命令的例子

    今天小编就为大家分享一篇Python利用WMI实现ping命令的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 基于Python实现图片浏览器的应用程序

    基于Python实现图片浏览器的应用程序

    图像浏览器应用程序是一种非常常见和实用的工具,这篇文章就来为大家介绍一下如何使用Python编程语言和wxPython库创建一个简单的图像浏览器应用程序,感兴趣的可以了解下
    2023-10-10

最新评论