在使用socket實現TCP與UDP不同就在於
tcp_socket = socket(AF_INET, SOCK_STREAM)
udp_socket = socket(AF_INET, SOCK_DGRAM)
其次TCP協議的話客戶端需要連接服務器,服務端需要設置接聽狀態
from socket import *
def main():
# 1.創建套接字socket
tcp_socket = socket(AF_INET, SOCK_STREAM)
# 2.綁定信息bind
tcp_socket.bind(("", 5773))
# 3.設置爲監聽狀態listen
tcp_socket.listen(128)
# 循環多次accept,爲多個客戶端服務
while True:
print("Wait Client...")
# 等待客戶端連接accept
new_client, client_addr = tcp_socket.accept()
# 打印接入客戶端地址信息
print("Access Client:%s : %d" % (client_addr[0], client_addr[1]))
# 爲同一個客戶端多次服務
while True:
# 接收客戶端發送來的請求
new_data = new_client.recv(1024)
# recv解堵塞兩種方式:1.客戶端發來數據 2.客戶端調用close
if new_data:
# 打印客戶端發送到來的信息
print("message:%s" % new_data.decode("gbk"))
# 反饋客戶端信息接收到
new_client.send(b"-----succeed----")
else:
break
# 關閉該客戶端套接字,不再爲此客戶端服務
new_client.close()
print("Done...")
# 關閉套接字
tcp_socket.close()
if __name__ == '__main__':
main()