python——socket實現簡單C/S互動開發

m53469發表於2021-09-09

pyhton的socket模組可以實現網路程式設計開發,首先我們介紹一下需要用到的方法:

socket.socket():建立socker套接字,兩個引數,family代表家族.type代表型別,type預設TCP

socket.bind():伺服器端,接受的引數是元組,不是傳遞host,port兩個元素,而是(host,port)

socket.listen():一個引數,值為允許客戶端連線伺服器的排隊上線,如果超過掛起上限則會拒絕掉

socket.accept():無引數,其返回值是一個元組,第一個是新的套接字物件,第二個是地址

clnt.recv(1024):引數內設定為一次接收的資料,即位元組

socket.connect():客戶端,與bind對應,接受的也是元組


下面我們來看伺服器端的demo程式碼


# -*- coding:utf-8 -*-#伺服器端import sockethost='127.0.0.1'    #IPport=5000           #埠,不能引號#family代表家族.type代表型別,預設TCP#s=socket.socket(family,type)s=socket.socket()#建立套接字#s.bind(host,port)#接受的引數是元組,這樣不可以s.bind((host,port))s.listen(5)#值是允許客戶端連線伺服器排隊上限,如果超過掛起上限則會拒絕掉print 'Server open~'clnt,addr=s.accept()#accept()返回是一個元組,第一個是新的套接字物件,第二個是地址print 'cline address :',addrwhile True:data=clnt.recv(1024)#一次接收的資料,1024位元組print dataclnt.sendall(data)s.close()


然後再看客戶端demo程式碼


# -*- coding:utf-8 -*-#客戶端import sockethost='127.0.0.1'    #IPport=5000           #埠,不能引號s=socket.socket()s.connect((host,port))#接收的也是元組while True:cmd=raw_input('please input :')if cmd=='quit':breaks.sendall(cmd)data=s.recv(1024)print datas.close()


圖片描述


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2819/viewspace-2804770/,如需轉載,請註明出處,否則將追究法律責任。

相關文章