python socket編程(初級)

來源:互聯網
上載者:User

標籤:

用戶端編程:

  首先要建立socket,用python中socket模板中的socket函數就可以了

  import socket

  s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

  socket函數後面要帶兩個參數:

    Address Family : 可以選擇AF_INET(用於Internet處理序間通訊)或者AF_UNIX(同一台機器間通訊)

    Type:通訊端類型,可以是 SOCK_STREAM(流式通訊端,主要用於 TCP 協議)或者SOCK_DGRAM(資料通訊端,主要用於 UDP 協議)

  我們知道了伺服器的IP地址和連接埠號碼,我就可以用connect函數串連

  s.connect(IP,PORT)

  串連上了之後,我們就可以向伺服器發送資料了,

  message = data  # data是你要發送的資料

  發送完之後就,我們就要接受資料

  reply = s.recv(1024)  #1024是一次可以接受的資料大小

  最後我們把串連連接埠就可以了

  s.close()

客服端全部的代碼如下:

 1 #!usr/bin/env python 2 #coding:utf-8 3  4 import socket 5  6 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 7 print ‘Socket Created‘ 8 host = ‘www.google.com‘ 9 port = 8010 remote_ip = socket.gethostbyname(host)              11 #擷取host的IP地址,gethostbyname是在你不知道網頁的IP地址的情況下可以擷取網址的IP,一般在自己電腦上的時候是不用的12 print remote_ip13 s.connect((remote_ip,port))14 message = ‘GET / HTTP/1.1\r\n\r\n‘                  15 #這是一個HTTP請求網頁內容的命令16 s.sendall(message)17 print ‘Message send successfully‘18 reply = s.recv(4096)19 print reply20 s.close()

 

伺服器和用戶端有點不一樣

伺服器主要做的是:

1. 開啟socket;

2.綁定到特定的地址和連接埠上;

3.監聽串連;

4.建立串連;

5.接受或者發送資料

具體代碼如下:

#!usr/bin/env python#coding:utf-8import socketHOST = ‘127.0.0.1‘PORT = 8888s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind((HOST,PORT))s.listen(5)while True:             conn,addr = s.accept()             data = conn.recv(1024)             conn.sendall(‘welcome !‘)             print data             if data == ‘exit‘:   如果接受的data = exit的話就退出迴圈                          breakconn.close()s.close()

 

這樣就差不多了,剩下的就是一些細節方面的問題了. 我一開始寫的時候寫了好久,照著別人的寫總是會出錯,關鍵是別人寫的卻可以運行,心塞!

 

主要參考的是:

http://www.cnblogs.com/hazir/p/python_socket_programming.html

 

 

    

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.