本文摘自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的内置函数有哪些
对比分析Python下识别二维码用法和识别率
Python数据分析用什么工具
网络编程详细介绍
Python中post与get方式提交数据的代码实例分享
Python用pip安装numpy
Python第三方库怎么用
Python如何终止线程
Python中eval是什么意思?
有关Python的md5加密用法详解
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python3中socket套接字相关的问题