python3的socket_python2 与 python3 socket编程的一点小区别
python3 與python2 其實(shí)有很大的區(qū)別,但為了寫程序的人的方便,很多東西盡量還是按照python2 的函數(shù),類以及方法來處理,但這里面的編碼可能會(huì)有區(qū)別。前幾天為了改以前寫的一個(gè)socket 的東西,測試了python2 與 python3的在socket 方面的最基本的差別.
在python3 中socket 接受bytes, 所以必須手動(dòng)調(diào)用encode 以及 decode 方法.import sys
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("whois.arin.net", 43))
#convert string to bytes, socket need bytes
s.send((sys.argv[1] + "\r\n").encode())
#declares a bytes
response = b""
while True:
data = s.recv(4096)
response += data
if not data:
break
s.close()
#convert bytes to string
print(response.decode())
在python2 中的實(shí)現(xiàn)
import sys
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("whois.apnic.net", 43))
s.send(sys.argv[1] + "\r\n")
response = ""
while True:
data = s.recv(4096)
response += data
if not data:
break
s.close()
print response
參考資料: http://code.activestate.com/recipes/577364-whois-client/
總結(jié)
以上是生活随笔為你收集整理的python3的socket_python2 与 python3 socket编程的一点小区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中使用函数的优点_Pytho
- 下一篇: 启动zookeeper_Zookeepe