伺服器端**:
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 ...