socket實現簡單的實時通訊功能

2021-09-17 20:00:30 字數 1214 閱讀 5000

伺服器端**:

import socket

print('我是服務端!')

host = ''

port = 50007

s = socket.socket(socket.af_inet, socket.sock_stream) # 建立tcp socket物件

s.bind((host, port)) # 繫結位址

s.listen(1) # 監聽tcp,1代表:作業系統可以掛起(未處理請求時等待狀態)的最大連線數量。該值至少為1

conn, addr = s.accept() # 開始被動接受tcp客戶端的連線。

print('連線的位址', repr(addr))

while 1:

data = conn.recv(1024) # 接受tcp資料,1024表示緩衝區的大小

if not data: break

print('接收到:', repr(data))

conn.sendall(data) # 把從客戶端接收來的資料完整的,傳送給客戶端

conn.close()

客戶端**:

import socket

print('我是客戶端!')

host = 'localhost' # 伺服器的ip

port = 50007 # 需要連線的伺服器的埠

s = socket.socket(socket.af_inet, socket.sock_stream)

s.connect((host, port))

print("傳送'hello world'")

s.sendall('hello, world'.encode()) # 傳送『hello,world』給伺服器

data = s.recv(1024)

s.close()

print('接收到', repr(data)) # 列印從伺服器接收回來的資料

說明:

需要先執行伺服器端**,再執行客戶端**。

php簡單實現socket通訊

socket通訊的原理在這裡就不說了,它的用途還是比較廣泛的,我們可以使用 socket 來做乙個 api介面出來,也可以使用 socket 來實現兩個程式之間的通訊,我們來研究一下在 php開發 中如何實現socket通訊。由於socket服務端的 要監聽埠,等待接收請求,所以 php在做 soc...

epoll實現簡單socket通訊

epoll是常用的socket通訊方式,相比於select和poll來說,效率提公升了不止一點半點 其一 select中socket描述符 檔案描述符 集的資料結構為陣列,poll的檔案描述符集資料結構為鍊錶,無論陣列還是鍊錶,它們都是線性結構,當遍歷時,也只能線性遍歷 而epoll檔案描述符集採用...

socket通訊的簡單實現(C)

服務端多執行緒版本 include include include include include include include include include include define server port 9002 判斷是否被占用 netstat an grep 9001 define ...