用 python3 傳送的資料必須是 bytes(二進位制) 型別
import socket # 匯入 socket
defmain()
:# 建立乙個udp套接字
udp_socket = socket.socket(socket.af_inet, socket.sock_dgram)
# 從鍵盤獲取資料
send_data =
input
('請輸入要傳送的資料:'
)# 可以使用套接字收發資料
# 格式:udp_socket.sendto('要傳送的資料', 對方的ip以及port)
# 法一(由於只能接收位元組型別,所以在要傳送的資料前面加上b,將字串型別變為byte型別,即位元組型別):
# udp_socket.sendto(b'hahaha----1---', ('192.168.33.53', 8080)) 注意:ip要用引號引起來,埠號不用
# 法二(還可以用下面的方式將其轉為『utf-8』的編碼格式):
udp_socket.sendto(send_data.encode(
'utf-8'),
('192.168.33.53'
,8080))
# 關閉套接字
udp_socket.close(
)if __name__ ==
'__main__'
: main(
)
迴圈傳送資料
import socket # 匯入 socket
defmain()
:# 建立乙個udp套接字
udp_socket = socket.socket(socket.af_inet, socket.sock_dgram)
# 獲取對方的 ip/port
dest_ip =
input
('請輸入對方的ip:'
)try
: dest_port =
int(
input
('請輸入對方的 port:'))
except
:print
('輸入錯誤,請重新輸入!'
)# 從鍵盤獲取資料
send_data =
input
('請輸入要傳送的資料:'
)# 可以使用套接字收發資料
# 格式:udp_socket.sendto('要傳送的資料', 對方的ip以及port)
# 法一(由於只能接收位元組型別,所以在要傳送的資料前面加上b,將字串型別變為byte型別,即位元組型別):
# udp_socket.sendto(b'hahaha----1---', ('192.168.33.53', 8080)) 注意:ip要用引號引起來,埠號不用
# 法二(還可以用下面的方式將其轉為『utf-8』的編碼格式):
# udp_socket.sendto(send_data.encode('utf-8'), ('192.168.33.53', 8080))
udp_socket.sendto(send_data.encode(
'utf-8'),
(dest_ip, dest_port)
)# 接收回送過來的資料
recv_data = udp_socket.recvfrom(
1024
)# 套接字可以同時收發資料的,可以在同一時刻接收資料和傳送資料
print
(recv_data)
# 關閉套接字
udp_socket.close(
)if __name__ ==
'__main__'
: main(
)
socket UDP廣播的傳送和接收示例
如果網路中兩個主機上的應用程式要相互通訊,其一要知道彼此的ip,其二要知道程式可監聽的埠。因為同一主機上的程式使用網路是通過埠號來區分的。1.初始化網路庫 2.建立sock dgram型別的socket。3.繫結套接字。4.傳送 接收資料。5.銷毀套接字。6.釋放網路庫。專門用於同時向網路中所有工作...
socket,UDP傳送ARP包 c 實現
內容可能和網上很多大神寫的類似,我也沒有什麼創新的地方,全當寫日記了,學了網路程式設計和計算機系統之後,覺得對ip資料報有了些了解,所以想嘗試一下能不能寫出區域網arp攻擊工具出來.以下是思路1.先了解arp攻擊 的原理,攻擊物件是我舍友,我想要讓他不能正常上網,所以給他傳送arp閘道器欺騙包,告訴...
Python串列埠資料打包傳送STM32接收資料解析
嘗試使用python中的struct.pack函式打包資料通過串列埠傳送,由stm32接收解析。1 struct.pack struct.pack用於將python的值根據格式符,轉換為字串 因為python中沒有位元組 byte 型別,可以把這裡的字串理解為位元組流,或位元組陣列 其函式原型為 s...