標籤:開始 bind 條件 監聽 bsp 調試 ufs 服務端 pytho
今天學習了socket的一些知識,主要為socket模組中socket()類及其父類的一些方法
只要包括:
sock=socket.socket()sk.bind(address) #綁定自己的通訊端資訊sk.listen([backlog]) #保持監聽,直到有串連資訊sk.accept() #接收串連,並返回(socket object, address info)資訊sk.connect(address) #根據通訊端資訊串連對方的通訊端sk.sendall(string) #向對方發送資訊,但必須為位元組sk.recv(bufsize) #接收對方的資訊sk.close() #關閉通訊端
根據以上方法,我寫了一個聊天小程式,如下
服務端
import socketsock=socket.socket()sock.bind((‘127.0.0.1‘,8001))#保持監聽sock.listen(5)while 1: #等待對方的串連 con,address=sock.accept() #串連成功後向對方發送請求資訊 con.sendall(bytes(‘對方已線上,請輸入資訊,當輸入q時中斷連線‘,encoding=‘utf-8‘)) #開始聊天 while 1: #接收資訊 ming=con.recv(1024) xiao_ming=str(ming,encoding=‘utf-8‘) #對方中斷連線 if xiao_ming==‘q‘: print(‘對方(小明)已中斷連線‘) break print(‘小明(對方):‘+xiao_ming) #發送資訊 hong=input(‘小紅(你) :‘) con.sendall(bytes(hong,encoding=‘utf-8‘))
用戶端
import socketsoc=socket.socket()#根據地址資訊串連對方soc.connect((‘127.0.0.1‘,8001))#接收對方的請求資訊mas=soc.recv(1024)massage=str(mas,encoding=‘utf-8‘)print(massage)#開始聊天while 1: #發送資訊 ming=input(‘小明(你) :‘) soc.sendall(bytes(ming,encoding=‘utf-8‘)) #中斷連線條件 if ming==‘q‘: print(‘你已中斷連線,若想發送資訊請重新串連‘) break #接收資訊 hon=soc.recv(1024) hong=str(hon,encoding=‘utf-8‘) print(‘小紅(對方):‘+hong)soc.close()
在調試過程中,發現自己與自己對話真是一種奇妙與悲哀的感覺
python 學習總結3