python socket练习
生活随笔
收集整理的這篇文章主要介紹了
python socket练习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
服務器端
#服務器端import socket server = socket.socket() server.bind(('localhost',6969))#綁定要監聽的端口 server.listen() #監聽conn,address = server.accept() #等待接收數據 返回兩個值,一個是對方的標記位,一個是對方的地址print(conn,address ) data = conn.recv(1024) #接收數據,誰發數據給我就用誰的標記位接收 print(data) conn.send(data.upper()) #發送數據,要發給誰就用誰的標記位server.close() #=========執行結果========== <socket.socket fd=312, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 6969), raddr=('127.0.0.1', 50169)> ('127.0.0.1', 50169) b'hello world'?客戶端
#客戶端 import socketclient = socket.socket()#聲明socket類型,同時生成socket連接對象client.connect(('localhost',6969)) client.send(b'hello world') #發送數據data = client.recv(1024) #接收指定大小的字節 print(data) client.close() #==========執行結果========= b'HELLO WORLD'?如果要發送中文就必須要轉成bytes類型,字符串通過encode()方法轉出來的就是bytes類型。
重新發送一條中文,服務器端代碼不變,客戶端代碼轉下編碼重新發送。
服務器端
#服務器端import socket server = socket.socket() server.bind(('localhost',6969))#綁定要監聽的端口 server.listen() #監聽conn,address = server.accept() #等待接收數據 返回兩個值,一個是對方的標記位,一個是對方的地址print(conn,address ) data = conn.recv(1024) #接收數據,誰發數據給我就用誰的標記位接收 print(data) conn.send(data.upper()) #發送數據,要發給誰就用誰的標記位server.close() #=============執行結果============= <socket.socket fd=312, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 6969), raddr=('127.0.0.1', 51032)> ('127.0.0.1', 51032) b'\xe4\xbd\xa0\xe5\xa5\xbd,\xe4\xb8\xad\xe5\x9b\xbd'?客戶端
#客戶端 import socketclient = socket.socket()#聲明socket類型,同時生成socket連接對象client.connect(('localhost',6969))client.send('你好,中國'.encode("utf-8")) #發送數據data = client.recv(1024) #接收指定大小的字節 print(data) print(data.decode()) # client.close() #=======執行結果============ b'\xe4\xbd\xa0\xe5\xa5\xbd,\xe4\xb8\xad\xe5\x9b\xbd' 你好,中國?所有的數據傳送接收必須用bytes類型。
?
轉載于:https://www.cnblogs.com/qing-chen/p/7444022.html
總結
以上是生活随笔為你收集整理的python socket练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 域名转发与域名解析有什么区别?
- 下一篇: 号称最安全的苹果TEE被黑客攻破了,怎么