0x01 環境
python、pycharm
0x02 程序
# -*- coding:utf-8 -*-import sockettarget_host='127.0.0.1'
target_part=80#創建一個socket對象
client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#發送一些數據
client.sendto('AAAAAA',(target_host,target_part))#接收到的消息
data,addr=client.recvfrom(4096)print data
0x03 解釋
下面這段代碼是用來創建一個套接字,socket函數有三個參數
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
分別為:
socket(family,type[,protocal])
- family是地址系列,主要有:
值 | 含義 |
---|---|
socket.AF_INET | IPv4,默認 |
socket.AF_INET6 | IPv6 |
- type是套接字類型,主要有
值 | 含義 |
---|---|
socket.SOCK_STREAM | 創建的套接字基于TCP,默認 |
socket.SOCK_DGRAM | 創建的套接字基于UDP |
- protocal默認就行
當執行完這條語句就會成功創建一個套接字,UDP不需要連接,所以可直接發送數據
client.sendto('AAAAAA',(target_host,target_part))
sendto(string[,flag],address)是發送 UDP 數據,將數據發送address指定的主機,address 是形式為(ipaddr,port)的元組,指定遠程地址。返回值是發送的字節數。
data,addr=client.recvfrom(4096)
recvfrom(bufsize[.flag]),用來接收UDP數據,bufsize用來限定一次接收最大字節數,返回值是(data,address)。其中 data 是包含接收數據的字符串,address 是發送數據的套接字地址。
0x04 運行結果
一開始運行成功了,并有數據返回,再次運行,拒絕訪問了,哎!下次補上圖吧!