Python基于socket实现的TCP服务端
生活随笔
收集整理的這篇文章主要介紹了
Python基于socket实现的TCP服务端
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
'''
基于socket實現(xiàn)的TCP服務端
'''import socket
# 建立socket對象
server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 如果服務器是一次性的,如果服務器結束后馬上重新啟動會出現(xiàn)一個錯誤,原因是地址和端口沒有被釋放
# OSError: [Errno 48] Address already in use
# 如果想馬上釋放,要設置一下socket選項
server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
# 綁定IP和端口,如果在綁定IP時沒有給定IP,默認是綁定本地IP
server_socket.bind(('',7777))
# 設置監(jiān)聽(最大監(jiān)聽數(shù)),設置完后服務端會進入被動模式,不能主動連接客戶端,只能被動地等待客戶端的連接
server_socket.listen(128)
# 等待客戶端連接,連接上后,函數(shù)會返回客戶端的Socket對象和地址信息
client_socket,ip_port=server_socket.accept()
print(f'客戶端{ip_port[0]}使用端口{ip_port[1]}連接成功...')
# 接收客戶端數(shù)據(jù)
data=client_socket.recv(1024)
# 查看客戶端發(fā)送的數(shù)據(jù)長度
if len(data)!=0:data=data.decode('gbk')print(f'客戶端{ip_port[0]}使用端口{ip_port[1]}發(fā)送是數(shù)據(jù)是{data}')
else:print(f'客戶端{ip_port[0]}使用端口{ip_port[1]}關閉了連接')# 給客戶端發(fā)送數(shù)據(jù)
data='你好'.encode('gbk')
client_socket.send(data)
# 關閉客戶端
client_socket.close()
# 關閉服務端
server_socket.close()
總結
以上是生活随笔為你收集整理的Python基于socket实现的TCP服务端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基于socket实现的TCP
- 下一篇: websocket python爬虫_p