本文摘自php中文网,作者零下一度,侵删。
本篇文章主要介绍了详解python3中socket套接字的编码问题解决,具有一定的参考价值,感兴趣的小伙伴们可以参考一下一、TCP
1、tcp服务器创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen( 5 )
while True :
print ( "waiting for connection" )
tcpCliSock, addr = tcpSerSock.accept()
print ( "...connected from:" , addr)
while True :
data = tcpCliSock.recv(BUFSIZ).decode()
if not data:
break
tcpCliSock.send(( 'service:' + ctime() + '--' + data).encode())
tcpCliSock.close()
tcpSerSock.close()
|
2、tcp客户端创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True :
data = input ( "> " )
if not data:
break
tcpCliSock.send(data.encode())
data = tcpCliSock.recv(BUFSIZ).decode()
if not data:
break
print ( '返回:%s' % data)
tcpCliSock.close()
|
二、UDP
1、UDP服务器创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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客户端创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | from socket import *
HOST = 'localhost'
PORT = 21567
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。只要掌握这个重点,处理这个问题就很简单了。
以上就是python3中socket套接字相关的问题的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python中的bat文件是什么
Python中排序算法的实现方法总结(代码)
一文了解Python 3.8的新功能
Python爬虫任务接单渠道
嵌入式软件和Python有关吗
网络Python爬虫难吗
Python守护进程的实现
Python是干什么的
Python变量与赋值的图文详解
Python可以开发软件吗
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python3中socket套接字相关的问题