python udp區域網通訊程式

2021-10-10 04:49:52 字數 2064 閱讀 3388

使用自帶的socket通訊模組利用tcp進行網路通訊

# 匯入socket模組

import socket

defmain()

:# 建立udp套接字

udp_socket = socket.socket(socket.af_inet, socket.sock_dgram)

try:

# 鍵盤錄入ip位址

deta_ip =

input

("請輸入對方的ip:"

) deta_port =

int(

input

("請輸入對方port:"))

n =""while

true

:# 從鍵盤錄入

sed_data =

input

("請輸入你要傳送的資料:"

)if sed_data ==

"exit"

:break

elif sed_data == n:

print

("請輸入正確的字元"

)continue

# 使用套接字收發資料

# udp_socket.sendto("你好啊",對方的ip以及port)

# udp_socket.sendto(b"你好", ("192.168.16.100", 80081))

# udp_socket.sendto(sed_data.encode("utf-8"), ("192.168.16.100", 8081))

udp_socket.sendto(sed_data.encode(

"gbk"),

(deta_ip, deta_port)

)except socket.gaierror:

print

('錯誤!請輸入正確的ip位址!'

)except valueerror:

print

('錯誤!請輸入正確的port!'

)except exception as result:

print

("%s 未知錯誤"

% result)

# 關閉套接字

udp_socket.close(

)if __name__ ==

'__main__'

: main(

)

import socket

defmain()

:# 1、建立套接字

udp_socket = socket.socket(socket.af_inet, socket.sock_dgram)

print

("正在接收資料..."

)# 2、繫結乙個本地的資訊

udp_bind =

('192.168.16.104'

,8081

) udp_socket.bind(udp_bind)

while

true

:# 3、接收資料

udp_recvfrom = udp_socket.recvfrom(

1024

)# 4、列印接收到的資料

# udp_recvfrom這個變數中儲存的是乙個元組(接收到的資料,(傳送方的ip,port))

udp_msg = udp_recvfrom[0]

# 儲存接收的資料

udp_addr = udp_recvfrom[1]

# 儲存傳送方的位址資訊

print

("%s:%s 對方的ip和port:%s"%(

'某某接收到古文龍的資訊'

,udp_msg.decode(

"utf-8"),

str(udp_addr)))

# print(udp_recvfrom)

# 5、關閉套接字

udp_socket.close(

)if __name__ ==

'__main__'

: main(

)

Android socket區域網通訊

然後需要設定網路許可權,也就是在androidmaifest裡面新增internet許可權 public static string getlocalipaddress catch socketexception e return null 就可以獲取到本機的ip位址。在做第一次連線測試的時候,只需...

跨越區域網通訊(一)

通過adsl聯網的兩台主機怎麼才能相互通訊呢?對於一般的adsl使用者來說,通過adsl聯網都是動態ip,即它們的ip位址是不固定的。當它們聯上外網,電信給它乙個外網ip位址,當它斷開後電信會 此ip位址。重新聯網後,電信會根據剩餘的ip位址列表給出乙個新的外網ip位址。在socket通訊中,我們都...

android區域網通訊框架

該框架支援訊息失敗重複,訊息傳送成功或失敗的返回,支援心跳包,支援服務端斷網重連,話不多說直接上圖 上圖是整個框架的結構圖 tcpservice是服務端通訊的類,負責監聽客戶端連線請求,維護客戶端列表 finder是服務端,客戶端端搜尋的基類 subordinatefinder是服務端用來發現客戶端...