国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python Socket實現簡單TCP Server/client功能示例

2019-11-25 15:57:53
字體:
來源:轉載
供稿:網友

本文實例講述了Python Socket實現簡單TCP Server/client功能。分享給大家供大家參考,具體如下:

網絡上關于socket的介紹文章數不勝數。自己記錄下學習的點點滴滴。以供將來復習學習使用。

socket中文的翻譯是套接字,總感覺詞不達意。簡單的理解就是ip+port形成的一個管理單元。也是程序中應用程序調用的接口。

在這里我們先介紹如何啟動tcp 的server。

tcp連接中server部分,啟動一個ip和port口,在這個port口監聽,當收到client發來的請求,用一個新的端口port2同client建立連接。

socket啟動監聽的過程就是:

創建socket
bind端口
開始監聽
建立連接+繼續監聽

代碼:

'''This is a testing programthe program is used to start server'''import socketimport sysdef start_tcp_server(ip, port):  #create socket  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  server_address = (ip, port)  #bind port  print 'starting listen on ip %s, port %s'%server_address  sock.bind(server_address)  #starting listening, allow only one connection  try:    sock.listen(1)  except socket.error, e:    print "fail to listen on port %s"%e    sys.exit(1)  while True:    print "waiting for connection"    client,addr = sock.accept()    print 'having a connection'    client.close()if __name__ == '__main__':  start_tcp_server('10.20.0.20', 12345)

在這里有一個常用技巧,在start_tcp_server中,我們最常用到的是本機的ip,為了程序的通用性,最好使用調用函數的方式獲取ip地址。

用到兩個函數socket.gethostnamesocket.gethostbyname('name')

ip = socket.gethostbyname(socket.gethostname())

但是問題是一般情況下得到的ip地址為127.0.0.1。

對于使用配置或dhcp獲取的ip,可參考本站相關文章。

socket client 發起連接

流程為:

創建接口
發起連接
創建接口參數同socket server相同
發起連接的函數為socket.connect(ip,port)

這個地方的ip與port為socket server端的ip和監聽port。

代碼示例:

# -*- coding: utf-8 -*-'''This is a testing programthe program is used to test socket client'''import socketimport sysdef start_tcp_client(ip, port):  #server port and ip  server_ip = ip  servr_port = port  tcp_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  try:    tcp_client.connect((server_ip, server_port))  except socket.error:    print 'fail to setup socket connection'  tcp_client.close()

更多關于Python相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 随州市| 镇原县| 精河县| 宾阳县| 哈尔滨市| 阿瓦提县| 普兰县| 怀来县| 泰安市| 东港市| 乌鲁木齐县| 天等县| 集贤县| 江孜县| 土默特右旗| 胶州市| 美姑县| 藁城市| 沿河| 昌图县| 佛学| 迁西县| 大名县| 昌图县| 巴青县| 沈丘县| 榆中县| 丹巴县| 罗田县| 辽阳市| 柞水县| 克什克腾旗| 定边县| 仙居县| 绥阳县| 改则县| 横峰县| 诏安县| 嘉义县| 龙陵县| 克什克腾旗|