python---Socket编程
生活随笔
收集整理的這篇文章主要介紹了
python---Socket编程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Sockte是計算機之間進行網絡通信的一套程序接口,相當于在發送端和接收端之間建立一個通信管道。在實際應用中,一些遠程管理軟件和網絡安全軟件大多數依賴于Socket來實現特定功能,由于TCP方式在網絡編程中應用非常頻繁,此處將對TCP編程進行講解
編寫TCP時一般會用到Socket模塊,其方法主要包括:
- connect(address):連接遠程計算機
- send(bytes[,flags]):發送數據
- recv(bufsize[,flags]):接收數據
- bind(address):綁定地址
- listen(backlog):開始監聽,等待客戶端連接
- accept():響應客戶端的一個請求,接收一個連接
使用TCP進行通信,首先需要在客戶端和服務端建立連接,并且要在通信結束后關閉連接以釋放資源。由于TCP是面向連接的,因此相對于UDP提供更高的可靠性。下面展示如何通過TCP進行通信
例如,設計一個對話系統“小艾”,該應用分為兩部分,一部分為服務端,一部分為客戶端。客戶端發送請求,服務端返回應答消息,兩部分代碼如下:
服務器段
#! /usr/bin/python #coding:utf-8 #服務器段 import socket language = {'what is your name':'I am Tom','how old are you':'25','bye':'bye!'} host = '127.0.0.1' port = 6666 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind((host,port)) s.listen(1) print("listening at port 6666") conn,addr = s.accept() print('Connect by:',addr) while True:data = conn.recv(1024)data = data.decode()if not data:breakprint('Received message:',data)conn.sendall(language.get(data,'Nothing').encode()) conn.close() s.close()客戶端程序
#coding:utf-8 import socket,sys host = '127.0.0.1' port = 6666s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) try:s.connect((host,port)) except Exception as e:print('Server not found!')sys.exit()while True:c = input('YOU SAY:')s.sendall(c.encode())data = s.recv(1024)data = data.decode()print('Received:',data)if c.lower() == '再見':breaks.close()運行結果
總結
以上是生活随笔為你收集整理的python---Socket编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 去颐和园怎么预约
- 下一篇: python---可执行文件的转换