python小練習 TCP客戶端

2022-07-27 01:51:14 字數 1617 閱讀 9018

這是python黑帽子上的起始練習,我對其中的用到的函式做了注釋,以便日後便於理解。

另外,我注釋還有一部分udp客戶端的語句,tcp和udp對比便於記憶。

#

-*- coding:utf-8 -*-

#建立客戶端,類似於瀏覽器傳送請求

#建立乙個socket物件

client = socket.socket(socket.af_inet,socket.sock_stream) #

建立tcp連線

#socket.af_inet 使用標準的ipv4位址或者主機名

#socket.sock_stream 流式socket,應用於tcp

#socket.sock_dgram 資料報式socket,應用於udp

#client = socket.socket(socket.af_inet,socket.sock_dgram) # 建立udp連線

#連線客戶端

client.connect((target_host,target_port))

#連線到address處的套接字。一般address的格式為元組(hostname,port),如果連線出錯,返回socket.error錯誤。

#client.connect_ex(host,port) 成功返回0,失敗返回error

#傳送一些資料

#傳送tcp資料。將string中的資料傳送到連線的套接字。

#返回值是要傳送的位元組數量,該數量可能小於string的位元組大小。

#udp傳送

#s.sendto(string[,flag],address)

#將資料傳送到套接字,address是形式為(ipaddr,port)的元組,指定遠端位址。返回值是傳送的位元組數。

#client.sendto("aaabbbccc",(target_host,target_port))

#接收一些資料

response = client.recv(4096)

#s.recv(bufsize[,flag]) 接受tcp套接字的資料。

#資料以字串形式返回,bufsize指定要接收的最大資料量。

#flag提供有關訊息的其他資訊,通常可以忽略。

#udp接收

#s.recvfrom(bufsize[.flag])

#接受udp套接字的資料。與recv()類似,但返回值是(data,address)。

#其中data是包含接收資料的字串,address是傳送資料的套接字位址。

#data,addr = client.recvfrom(4096)

print

(response)

#print(data)

#關閉連線

#client.close()

推薦這篇文章對socket介紹的很詳細  

Python 簡易TCP客戶端

usr bin python coding utf 8 socket 程式設計 學習自 black hat python python programming for hackers and pentesters 簡單的tcp客戶端 target port 80 http協議預設埠 build a ...

TCP通訊(客戶端)

修改自網路 include include include pragma comment lib,ws2 32.lib int client void unsigned short port int main int argc,char argv int client void if isockcl...

TCP通訊,多客戶端通訊(客戶端 服務端)

客戶端和伺服器間的交流,客戶端傳送資訊,伺服器接收到,並返回資訊 長連線建立socket連線服務端 指定ip位址,埠號 通過ip位址找對應的伺服器 呼叫socket的getinputstream 和getoutputstream 方法獲取和服務端相連的io流 輸入流可以讀取服務端輸出流寫出的資料 輸...