socket udp傳送資料和接受資料

2021-10-07 23:02:14 字數 1985 閱讀 4932

用 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...