我的第一個python之socket通訊程式

來源:互聯網
上載者:User

剛剛開始接觸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編程的,用不同的語言實現也會相差無幾。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.