案例如下:
1、啟動乙個服務端套接字服務
2、啟動乙個客戶端套接字服務
3、客戶端向服務端傳送乙個hello,服務端則回覆乙個word,並列印
服務端**:
#客戶端**:coding:utf-8
import
socket
import
time
class
server:
def__init__
(self,host,port):
self.port =port
self.host =host
self.status =0
self.buf_size = 1024
defcreateserver(self):
self.server =socket.socket(socket.af_inet, socket.sock_stream)
self.server.bind((self.host, self.port))
defstartserver(self):
self.status = 1self.createserver()
#設定接收的連線數為1
self.server.listen(1)
client, address =self.server.accept()
while self.status == 1: #
迴圈收發資料報,長連線
data =client.recv(self.buf_size)
text =data.decode()
if text != ""
:
print(text) #
python3 要使用decode
client.send("
world
".encode())
#client.close() #連線不斷開,長連線
if__name__ == "
__main__":
server = server("
localhost
",8083)
server.createserver()
server.startserver()
#執行如下圖:coding:utf-8
import
socket
import
time
import
threading
class
client:
def__init__
(self,host,port):
self.port =port
self.host =host
self.status =0
self.buf_size = 1024
defconnect(self):
self.client =socket.socket(socket.af_inet, socket.sock_stream)
self.client.setsockopt(socket.sol_socket, socket.so_keepalive, 1) #
在客戶端開啟心跳
self.client.connect((self.host, self.port))
defsend(self,mes):
client.startresv()
while
true:
self.client.send(mes.encode())
time.sleep(1) #
如果想驗證長時間沒發資料,socket連線會不會斷開,則可以設定時間長一點
defresv(self):
while
true:
data =self.client.recv(self.buf_size)
text =data.decode()
(text)
defstartresv(self):
t = threading.thread(target=self.resv)
t.start()
defclose(self):
self.client.close()
if__name__ == "
__main__":
client = client("
localhost
",8083)
client.connect()
client.send(
"hello
")
python套接字 python套接字基本使用
socket socket通常也稱作 套接字 用於描述ip位址和埠,應用程式通常通過 套接字 向網路發出請求或者應答網路請求,可以認為是一種計算機網路的資料結構,介面。它是網路程式設計的基礎 套接字還分為面向連線的和無連線的 第一種是指tcp型別套接字,在通訊前需要建立連線,這種連線是較為可靠的,使...
python套接字程式設計 python套接字程式設計
服務端 usr bin python coding utf 8 import socket s socket.socket host socket.gethostname port 12345 s.bind host,port s.listen 5 while true c,addr s.accep...
18 3 3 套接字位址
每個套接字域都有獨特的位址格式。對於乙個 af unix 套接字來說,它的位址是由乙個包含在 sys un.h 標頭檔案裡的 sockaddr un 結構描述的。該結構的定義為 struct sockaddr un 因為不同型別的位址都需要傳遞到對套接字程序處理的系統呼叫裡去,所以定義各種位址格式時...