看板 AndroidDev 關於我們 聯絡資訊
我嘗試寫一個android程式 和一支python server 手機跟pc都是同一個LAN 手機接WiFi 192.168.0.2 PC接 192.168.0.4 手機在edittext打字串按下按鈕 Server得到字串並回應 實際運作時android打的訊息可以被PC接收到 但是回傳給手機收不到 不知道是什麼問題(ip設錯?權限沒開好?) 求佛心大大們的建議 https://i.imgur.com/mv58BId.jpg
https://i.imgur.com/Ns5kl54.jpg
https://pastebin.com/884BgRpv -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.72.167 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1595351323.A.4A8.html ※ 編輯: applejuice64 (42.72.72.167 臺灣), 07/22/2020 01:12:35 ※ 編輯: applejuice64 (42.72.72.167 臺灣), 07/22/2020 01:29:38
ahyang98: s = new Socket(192.x.x.2) 不會變成在聽手機自己嗎?07/22 10:18
panjiongkai: 你要收回訊應該是在送之前先建立InputStream,然後發07/22 16:18
panjiongkai: 送訊號給電腦後,讀InputStream的內容07/22 16:18
panjiongkai: 不是建立一個對手機自己的socketClient07/22 16:19
感謝樓上兩位的建議 我今天又嘗試了兩個方案 方案1: https://pastebin.com/8hzXkEW6 https://i.imgur.com/xPWXsj1.jpg
嘗試click啟動send data 然後準備一個thread啟動serversocket pc端在收到message後 connect到serversocket並回傳 方案1結果: 手機發出訊息讓py確實收到後 py決定連線到手機serversocket py connect到手機的時候卻直接讓手機閃退... 不知道是我的手機server邏輯寫法不正確無法接收訊息的關係嗎? 還是py檔案的發送邏輯不正確? 不應該connect(ip,port)再sendall再close? 方案2 https://pastebin.com/A5jw1BCh https://i.imgur.com/IpqKjZC.jpg
開啟手機app與server後 手機輸入訊息send可以讓server獲得訊息並回傳了 手機也會根據pc端回傳值改變手機畫面中text內容 但是沒辦法執行第二次send 必須重新開啟一次手機才可以send第二次訊息 不知道原因為何?我的send_data啟動後不能再進行第二次send_data嗎? 這部分沒頭緒... 想問各位大大覺得我的code邏輯合理或哪邊有異常? 1.手機輸入哈哈 2.電腦得到client message:哈哈 並回傳\n哈哈okay. 3.最後手機的text變成 wait to be changed300 哈哈okay.300 我的append執行了兩次... 我想我的程式邏輯應該是有哪邊出錯了.... ※ 編輯: applejuice64 (42.72.72.167 臺灣), 07/23/2020 00:04:04 ※ 編輯: applejuice64 (42.72.72.167 臺灣), 07/23/2020 00:13:15
ahyang98: 你的電腦每次回完訊息就會把socket關掉,可是手機只建立07/23 10:20
ahyang98: socket一次07/23 10:20
panjiongkai: 方案一的問題應該是因為你在Thread裡面建立Handler的07/23 11:09
panjiongkai: 關係07/23 11:09
rogerlarger: append兩次的問題我猜是讀了一個空的ttmp,也許可以07/28 00:14
rogerlarger: 改成if(ttmp.isEmpty())07/28 00:14
感謝各位的建議 ※ 編輯: applejuice64 (114.137.195.195 臺灣), 08/03/2020 15:06:03