python socket編程之用戶端和服務端簡單互動

來源:互聯網
上載者:User

標籤:python

服務端#_*_ coding:utf-8 _*_#匯入socket模組import socket# 建立socket對象sk = socket.socket()#綁定偵聽的IP和連接埠號碼ip_port = (‘192.168.9.213‘,9999)sk.bind(ip_port)#最大串連數sk.listen(5)#接受請求,接受請求的時候可以擷取到用戶端的socket對象,以及用戶端的IP和連接埠#通過while迴圈,讓服務端一直接受用戶端請求print "正在等待用戶端請求"while True:    conn ,address = sk.accept() # conn變數儲存的是用戶端的socket對象(conn就是用戶端),變數address儲存的是用戶端的IP地址和連接埠    print "已發生請求的用戶端,IP:%s 連接埠:%s" % (address[0], address[1])    #給用戶端發一條資訊內容    conn.send(‘hello word!‘)    #給用戶端發送訊息    #一直偵聽用戶端發送過來的訊息    while True:        client_data = conn.recv(1024) #接受用戶端發送過來的訊息        print client_data        if client_data == ‘exit‘:            break        conn.send(‘sb‘) #向用戶端發送訊息    conn.close()用戶端
#_*_ coding:utf-8 _*_#匯入socket模組import socket#建立socket對象client = socket.socket()#串連伺服器ip_port = (‘192.168.9.213‘,9999)client.connect(ip_port) #和服務端建立串連while True:    #擷取資料    data = client.recv(1024)    #接受服務端發送過來的訊息    print data  #列印服務端發送過來的訊息    #向服務端發送訊息    inp = raw_input(‘client data:‘)    client.send(inp)  # 向服務端發送訊息    if inp == ‘exit‘:        break


執行過程


執行過程
1、服務端偵聽
2、用戶端和服務端建立串連
3、服務端向用戶端發送一條訊息“hello world!”
4、用戶端接受訊息
5、接著,用戶端可以輸入訊息,發送給服務端
6、服務端接收用戶端發送過來的訊息
7、然後向用戶端發送一條訊息“sb”

8、用戶端接收訊息
9、用戶端可以輸入訊息,發送給服務端
10、服務端接收用戶端發送過來的訊息
11、然後向用戶端發送一條訊息“sb”

12....一直迴圈
直到用戶端輸入的是“exit”發送給服務端
服務端判斷,如果用戶端發送過來的訊息是exit,那麼就停止偵聽用戶端發送過來的訊息,這時候用戶端也和服務端中斷連線



補充一個服務端,實現可以同時處理多個用戶端請求(非同步多線程服務端)

#_*_ coding:utf-8 _*_import SocketServerclass MyServer(SocketServer.BaseRequestHandler):    def setup(self):        pass    def handle(self):        #print self.request,self.client_address,self.server        conn = self.request        conn.send(‘hello word!‘)  #給用戶端發一條資訊內容        # 一直偵聽用戶端發送過來的訊息        flag = True        while flag:            client_data = conn.recv(1024)   #接受用戶端發送過來的訊息,1024代表最多隻能在緩衝區拿資料的大小,緩衝區預設為8K            print client_data            conn.send(‘sb‘)  # 向用戶端發送訊息            if client_data == ‘exit‘:                print ‘串連的用戶端已斷開‘                flag = False        conn.close()    def finish(self):        passif __name__ == "__main__":    server = SocketServer.ThreadingTCPServer((‘192.168.9.213‘,9999),MyServer) #偵聽的IP和連接埠號碼    server.serve_forever()


本文出自 “FA&IT營運-Q群:223843163” 部落格,請務必保留此出處http://freshair.blog.51cto.com/8272891/1878038

python socket編程之用戶端和服務端簡單互動

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.