socket創建TCP服務端和客戶端


看情況選擇相對應的套接字
*面向連接的傳輸--tcp協議--可靠的--流式套接字(SOCK_STREAM)
*面向無連接的傳輸--udp協議--不可靠的--數據報套接字(SOCK_DGRAM)

在liunx中  telnet ip port 可以當成臨時客服端

 

服務端示例:

創建服務端示例:
from socket import *

#創建套接字(參數:地址族類型,套接字類型,選定子協議類型)
sockfd = socket(AF_INET,SOCK_STREAM,proto = 0)

#綁定地址(功能:綁定地址,參數(ip,port))
sockfd.bind(("0.0.0.0",9099))

#設置監聽(參數:監聽隊列的大小)
sockfd.listen(5)

#等待接收連接(會進行阻塞,當客戶端連接就往下運行)
#返回值:connfd 新的套接字,用於和客戶端通信,add 連接客戶端的地址(ip,port)
print("Waiting for connect...")
connfd,addr = sockfd.accept()
print("Connect from",addr)

#收發消息(沒接收到消息也會進行阻塞)
#參數:一次接收消息的大小字節(bytes格式)
data = connfd.recv(1024)
print(data)

#要發送的內容(bytes格式),返回實際發送的字節數
n = connfd.send(b"Receive your message")
print(n)
#關閉套接字
connfd.close()
sockfd.close()


客戶端示例:
from socket import *

#創建套接字
sockfd = socket(AF_INET,SOCK_STREAM)

#發起連接
server_addr = ("127.0.0.1",9099)
sockfd.connect(server_addr)

#收發消息
data = input("發送>>")
sockfd.send(data.encode())  #將字符串轉換成二進制

data = sockfd.recv(1024)
print("接收到:",data.decode())

#關閉字節套
sockfd.close()  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM