# This Python file uses the following encoding: utf-8 使用中文備註要加此語句python
#!/usr/bin/env python服務器
import socket,sys socket
# import是用來導入相應模塊; sys模塊提供了許多函數和變量來處理 Python 運行時環境的不一樣部分.ide
# print "script name is", sys.argv[1] 使用sys.argv[1]採集腳本名稱 Sys.argv[]是用來獲取命令行參數的函數
# sys.argv[0]表示代碼自己文件路徑,因此參數從1開始網站
port = 70spa
host = sys.argv[1]命令行
filename = sys.argv[2]接口
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ip
# 函數 socket.socket 建立了一個 Socket,並返回 Socket 的描述符可用於其餘 Socket 相關的函數。
# 上述代碼使用了下面兩個屬性來建立 Socket:
# 地址簇 : AF_INET (IPv4協議)
# 類型: SOCK_STREAM (字節流套接口,使用TCP傳輸控制協議;SOCK_DGRAM:數據報套接口,UDP使用的這種形式)
s.connect ((host,port))
s.sendall (filename + "\r\n")
# sendall函數用於簡單的發送數據\r回車\n換行
# s.sendall ("GET / HTTP/1.1\r\n\r\n")
# 首先鏈接到目標服務器,而後發送字符串數據 "GET / HTTP/1.1\r\n\r\n",這是一個 HTTP 協議的命令,用來獲取網站首頁的內容。
while 1:
buf = s.recv(2048) # recv 函數用於從 socket 接收數據
if not len(buf): # 當len(buf)爲空時,則跳出循環
break
sys.stdout.write(buf) # sys.stdout.write()等同於print()