【網絡編程】socket編程
阿新 • • 發佈:2018-05-29
網絡編程 就是 rip oca 而在 字節 end recv 連接建立
socket概念
socket本質上就是在2臺網絡互通的電腦之間,架設一個通道,兩臺電腦通過這個通道來實現數據的互相傳遞。 我們知道網絡 通信 都 是基於 ip+port 方能定位到目標的具體機器上的具體服務,操作系統有0-65535個端口,每個端口都可以獨立對外提供服務,如果 把一個公司比做一臺電腦 ,那公司的總機號碼就相當於ip地址, 每個員工的分機號就相當於端口, 你想找公司某個人,必須 先打電話到總機,然後再轉分機 。
建立一個socket必須至少有2端, 一個服務端,一個客戶端, 服務端被動等待並接收請求,客戶端主動發起請求, 連接建立之後,雙方可以互發數據。
客戶端:(示例)
importsocket client=socket.socket() #聲明sockrt類型,同時生成socket鏈接對象 client.connect((‘localhost‘,6969)) while True: msg=input(‘>>>‘).strip() if len(msg)==0: #空字節不能發送 continue client.send(msg.encode(‘utf-8‘)) data=client.recv(1024) print(‘recv:‘,data.decode()) client.close()
服務端:
import socket server=socket.socket() server.bind((‘localhost‘,6969)) #綁定要監聽的端口 server.listen() #監聽 print(‘waiting..‘) conn, addr = server.accept() # 等待 #conn就是客戶端連接過來,而在服務端為其生成的一個連接實例 while True: # print(conn,addr) print(‘recving...‘) data=conn.recv(1024) print(‘recv:‘,data.decode()) if not data: print(‘client has lost...‘) break conn.send(data.upper()) server.close()
【網絡編程】socket編程