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

首頁 > 編程 > Python > 正文

python實現簡單socket通信的方法

2019-11-25 16:50:12
字體:
來源:轉載
供稿:網友

本文實例講述了python實現簡單socket通信的方法。分享給大家供大家參考,具體如下:

剛剛開始接觸python,實現了一個helloworld程序---關于udp協議的socket通信demo。

首先服務端這邊的實現如下:

import socket, tracebackhost = '' # Bind to all interfaces port = 51500# Step1: 創建socket對象s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# Step2: 設置socket選項(可選)s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)# Step3: 綁定到某一個端口s.bind((host, port))# Step4: 監聽該端口上的連接while 1:  try:    message, address = s.recvfrom(8192)    print "Got data from ", address    s.sendto("Data is received succeefully.", address)  except (KeyboardInterrupt, SystemExit):    print "raise"    raise  except :    print "traceback"    traceback.print_exc()

其中,host置為空,意思是可以綁定到所有的接口和地址,無論是哪個客戶端的請求,只要是綁定到了同樣的端口,那么服務器就可以監聽到這個請求。

在tcp連接中,監聽客戶端的請求需要用到listen或accept函數,并有一個專門的socket和遠程極其連接。

接著使我們的客戶端實現:

import socket, sys# Step1: 輸入host和port信息host = raw_input('please input host name: ')textport = raw_input('please input textport: ')# Step2: 創建socket對象s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)try:  port = int(textport)except ValueError:  port = socket.getservbyname(textport, 'udp')# Step3: 打開socket連接  s.connect((host, port))# Step4: 發送數據print "Enter data to transmit: "data = sys.stdin.readline().strip()s.sendall(data)# Step5: 接收服務器發過來的數據print "Looking for replies; press Ctrl-C or Ctrl-Break to stop"while 1:  buf = s.recv(2048)  if not len(buf):    break  sys.stdout.write(buf)

這個例子就是這么簡單,實現起來和C語言版的差不多。看來,只要是了解socket編程的,用不同的語言實現也會相差無幾。

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄骅市| 百色市| 大渡口区| 青州市| 鸡泽县| 武乡县| 银川市| 汶上县| 海林市| 尚志市| 上饶市| 上林县| 荔波县| 三河市| 白水县| 彰化市| 略阳县| 嵩明县| 宝应县| 正定县| 岳阳市| 和平区| 远安县| 积石山| 江西省| 随州市| 汨罗市| 高青县| 新民市| 定陶县| 涡阳县| 辽阳市| 静乐县| 无锡市| 寿光市| 台东市| 凤台县| 宝丰县| 新竹市| 康保县| 大兴区|