全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解python3中socket套接字的编码问题解决

一、TCP

1、tcp服务器创建

#创建服务器
from socket import *
from time import ctime #导入ctime

HOST = ''    #任意主机
PORT = 21567  #随机提供个端口号
BUFSIZ = 1024  # 缓冲区大小设置为1KB,可以根据网络性能和程序需要改变这个容量
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM)  #分配了 TCP 服务器套接字
tcpSerSock.bind(ADDR)  #绑定到服务器地址以及开启 TCP 监听器的调用。
tcpSerSock.listen(5)  #listen()方法的参数是在连接被转接或拒绝之前,传入连接请求的最大数

"""
  一旦进入服务器的无限循环之中,我们就(被动地)等待客户端的连接。当一个连接请求出
现时,我们进入对话循环中,在该循环中我们等待客户端发送的消息。如果消息是空白的,这意
味着客户端已经退出,所以此时我们将跳出对话循环,关闭当前客户端连接,然后等待另一个客
户端连接。如果确实得到了客户端发送的消息,就将其格式化并返回相同的数据,但是会在这些
数据中加上当前时间戳的前缀。最后一行永远不会执行,它只是用来提醒读者,如果写了一个处
理程序来考虑一个更加优雅的退出方式,正如前面讨论的,那么应该调用 close()方法。
"""
while True:
  print("waiting for connection")
  tcpCliSock, addr = tcpSerSock.accept() # 接收客户端连接,返回客户端和地址
  print("...connected from:", addr)

  while True:
    data = tcpCliSock.recv(BUFSIZ).decode() #对话(接收 / 发送) 接收客户端的data
    if not data:
      break
    tcpCliSock.send(('service:'+ctime()+'--'+data).encode())  #发送时间戳 和data信息给客户端

  tcpCliSock.close()
tcpSerSock.close()

2、tcp客户端创建

from socket import *

HOST = 'localhost'
PORT = 21567      #端口号 PORT 应该与你为服务器设置的完全相同(否则,将无法进行通信)
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM)  #分配 TCP 客户端套接字
tcpCliSock.connect(ADDR)  #主动连接

"""
  我们必须解码来自服务器端的字符串(借助于distutils.log.warn()

"""
while True:
  data = input("> ")
  if not data:   #用户如果没有输入,则终止
    break
  tcpCliSock.send(data.encode())   #发送客户端的data给服务器
  data = tcpCliSock.recv(BUFSIZ).decode() #接收服务器的data
  if not data:  #或者服务器终止且对 recv()方法的调用失败
    break
  print('返回:%s'%data)
tcpCliSock.close()

二、UDP

1、UDP服务器创建

"""

  这个脚本创建一个 UDP 服务器,它接受客户端发来的消息,并将加了时间戳前缀的该消息返回给客户端。

"""

from socket import *

from time import ctime

 

HOST = ""

PORT = 21567

BUFSIZ = 1024

ADDR = (HOST, PORT)

 

udpServer = socket(AF_INET, SOCK_DGRAM)

udpServer.bind(ADDR)

 

while True:

  print("waiting for masssage")

  data,addr = udpServer.recvfrom(BUFSIZ) #接收

  data = data.decode()

  udpServer.sendto((ctime()+"--"+ data).encode(),addr)

  print("received from and returned to ",addr)

 

udpServer.close() 

2、UDP客户端创建 

#这个脚本创建一个 UDP 客户端,它提示用户输入发送给服务器的消息,并接收服务器加了时间戳前缀的消息,然后将它们显示给用户。
from socket import *
HOST = 'localhost'
PORT = 21567      #端口号 PORT 应该与你为服务器设置的完全相同(否则,将无法进行通信)
BUFSIZ = 1024
ADDR = (HOST, PORT)

udpCS = socket(AF_INET, SOCK_DGRAM)

while True:
  data = input("> ")
  if not data:
    break
  udpCS.sendto(data.encode(),ADDR)
  data,ADDR = udpCS.recvfrom(BUFSIZ)
  if not data:
    break
  print(data)

udpCS.close()

其实道理都差不多,在python3中,利用套接字传输的内容都以byte形式传输,这时候传送时(send/sendto)需要encode,接收(recv)时需要decode。只要掌握这个重点,处理这个问题就很简单了。

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


# python  # socket  # 编码  # socket套接字  # python使用原始套接字发送二层包(链路层帧)的方法  # Python中利用原始套接字进行网络编程的示例  # python原始套接字编程示例分享  # Python 套接字 Accept 超时问题解析  # 客户端  # 端口号  # 与你  # 求出  # 创建一个  # 完全相同  # 是在  # 会在  # 这个问题  # 将其  # 很简单  # 并将  # 如果没有  # 写了  # 现时  # 可以根据  # 我们必须  # 设置为  # 永远不会  # 都以 


相关文章: 在线制作视频的网站有哪些,电脑如何制作视频短片?  网站制作网站,深圳做网站哪家比较好?  广州美橙建站如何快速搭建多端合一网站?  如何注册花生壳免费域名并搭建个人网站?  香港服务器租用费用高吗?如何避免常见误区?  网页设计网站制作软件,microsoft office哪个可以创建网页?  深入理解Android中的xmlns:tools属性  装修招标网站设计制作流程,装修招标流程?  如何在云主机快速搭建网站站点?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  建站主机解析:虚拟主机配置与服务器选择指南  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  制作网站的基本流程,设计网站的软件是什么?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  如何高效生成建站之星成品网站源码?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  制作网站外包平台,自动化接单网站有哪些?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  太原网站制作公司有哪些,网约车营运证查询官网?  北京制作网站的公司,北京铁路集团官方网站?  如何快速搭建高效WAP手机网站吸引移动用户?  javascript中对象的定义、使用以及对象和原型链操作小结  如何快速生成凡客建站的专业级图册?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  如何续费美橙建站之星域名及服务?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  实现虚拟支付需哪些建站技术支撑?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  建站之星如何修改网站生成路径?  建站之星如何保障用户数据免受黑客入侵?  如何通过宝塔面板实现本地网站访问?  建站org新手必看:2024最新搭建流程与模板选择技巧  建站之星图片链接生成指南:自助建站与智能设计教程  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  完全自定义免费建站平台:主题模板在线生成一站式服务  如何快速选择适合个人网站的云服务器配置?  文字头像制作网站推荐软件,醒图能自动配文字吗?  如何用西部建站助手快速创建专业网站?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  如何快速生成高效建站系统源代码?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  创业网站制作流程,创业网站可靠吗?  江苏网站制作公司有哪些,江苏书法考级官方网站?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  平台云上自主建站:模板化设计与智能工具打造高效网站 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。