tcp服務的簡單實現過程分為服務端和客戶端的實現,
首先服務端的實現過程大致為
##################tcp服務端結構##
################
tcps = socket() #建立伺服器套接字
tcps.bind() #把位址繫結到套接字
tcps.listen() #監聽鏈結
while true: #伺服器無限迴圈
tcpc = tcps.accept() #接受客戶端鏈結
while true: #通訊迴圈
tcpc.recv()/tcpc.send() #對話(接收與傳送)
tcpc.close() #關閉客戶端套接字
tcps.close() #關閉伺服器套接字(可選)
下面放上**:
服務端的**為
#server.py
import
socket
import
sys#
建立socket物件
serversocket =socket.socket(socket.af_inet, socket.sock_stream)
#sock_stream面向連線
#獲取本地主機名
host =socket.gethostname()
port = 9999
#繫結埠
serversocket.bind((host, port))
#bind()繫結位址(host,port)到套接字,
#在af_inet下,以元組(host, port)的形式表示位址
#設定最大連線數,超過後排隊
serversocket.listen(5)
while
true:
#建立客戶端鏈結
clientsocket, addr =serversocket.accept()
#被動接受tcp客戶端鏈結,等待傳入連線。
#返回代表連線的新套接字以及客戶端的位址。
#對於ip套接字,位址資訊是一對(hostaddr,埠)。
print("
" %str(addr))
msg = "
" + "
\r\n
"clientsocket.send(msg.encode(
'utf-8'))
clientsocket.close()
客戶端的**為
#client.py
import
socket
import
sys#
建立socket物件
s =socket.socket(socket.af_inet, socket.sock_stream)
#獲取本地主機名
host =socket.gethostname()
port = 9999
#鏈結服務,指定主機和埠
s.connect((host, port))
#接收小於num_byte的資料
num_byte = 1024msg =s.recv(num_byte)
s.close()
print(msg.decode('
utf-8
'))
需要介紹的是,這兩個程式如果在同乙個主機上執行,那麼可以看到服務端print出來的ip位址為127.0.0.1,這個ip位址是乙個本主機內的環迴位址,如果需要在區域網內的兩個主機中分別執行這兩個指令碼,則需要將客戶端中的
host =socket.gethostname()
python網路程式設計 TCP網路程式設計
tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...
python網路程式設計 TCP
一 網路通訊模式 對於網路通訊,現在遵循的是tcp ip協議組。而現在設計的通訊模式中,主要使用的是客戶端 伺服器程式設計,所謂的客戶端就是我們使用者所用的軟體,而服務端則是程式開發人員根據客戶端的需要設計的服務模式,為了是滿足客戶端的要求,實現和客戶端進行正常通訊。二 套接字 通訊的端點 對於tc...
python筆記 網路程式設計 TCP程式設計(伺服器)
目錄 一 建立伺服器響應 1.1步驟 1.2完整 1.3執行 伺服器程序首先要繫結乙個埠並監聽來自其他客戶端的連線。如果某個客戶端連線過來了,伺服器就與該客戶端建立socket連線,隨後的通訊就靠這個socket連線了。所以,伺服器會開啟固定埠 比如80 監聽,每來乙個客戶端連線,就建立該socke...