使用自帶的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是服務端用來發現客戶端...