python 學習總結3
阿新 • • 發佈:2017-10-27
今天 pre 小程序 brush mas 返回 等待 add 學習總結
今天學習了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 socket sock=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 socket soc=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