码迷,mamicode.com
首页 > 编程语言 > 详细

【Python3】简单的socket编程demo

时间:2020-03-24 17:21:05      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:接收   简单   最大   cep   指定   拒绝   种类型   main   ==   

分为客户端,和服务端

# 服务端程序
import socket
if __name__ == __main__: # 1.创建socket(套接字)对象 serv = socket.socket() # 2.绑定地址信息 host = socket.gethostname() port = 12345 serv.bind((host, port)) # 3.开启监听 serv.listen(5) # 最大的等待序列数,可以等待5个,第6个就被拒绝了,一般默认是5 print("监听已开启,等待连接。。。。") # 4.等待从客户端的连接 while 1: conn, address = serv.accept() # 返回socket连接对象和客户端地址address,是个元组结构 print("连接地址:%s"%(str(address[0]))) msg = "我是service,欢迎访问" conn.send(msg.encode(utf-8)) serv.close()

其中遇到了一个报错:a bytes-like object is required

解决办法:
解决办法非常的简单,只需要用上python的bytes和str两种类型转换的函数encode()、decode()即可!

str通过encode()方法可以编码为指定的bytes;
反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法;


# 客户端程序

import
socket if __name__ == __main__: client = socket.socket() #1.创建和服务器的连接 host = socket.gethostname() port=12345 client.connect((host, port)) # 接收小于 1024 字节的数据 msg = client.recv(1024) client.close() print (msg.decode(utf-8))

 

然后开启两个终端,可以测试

【Python3】简单的socket编程demo

标签:接收   简单   最大   cep   指定   拒绝   种类型   main   ==   

原文地址:https://www.cnblogs.com/ronyjay/p/12560073.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!