[問題] android socket無法得到回傳

看板AndroidDev作者 (凝時)時間3年前 (2020/07/22 01:08), 3年前編輯推噓2(208)
留言10則, 3人參與, 3年前最新討論串1/1
我嘗試寫一個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

07/22 10:18, 3年前 , 1F
s = new Socket(192.x.x.2) 不會變成在聽手機自己嗎?
07/22 10:18, 1F

07/22 16:18, 3年前 , 2F
你要收回訊應該是在送之前先建立InputStream,然後發
07/22 16:18, 2F

07/22 16:18, 3年前 , 3F
送訊號給電腦後,讀InputStream的內容
07/22 16:18, 3F

07/22 16:19, 3年前 , 4F
不是建立一個對手機自己的socketClient
07/22 16:19, 4F
感謝樓上兩位的建議 我今天又嘗試了兩個方案 方案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

07/23 10:20, 3年前 , 5F
你的電腦每次回完訊息就會把socket關掉,可是手機只建立
07/23 10:20, 5F

07/23 10:20, 3年前 , 6F
socket一次
07/23 10:20, 6F

07/23 11:09, 3年前 , 7F
方案一的問題應該是因為你在Thread裡面建立Handler的
07/23 11:09, 7F

07/23 11:09, 3年前 , 8F
關係
07/23 11:09, 8F

07/28 00:14, 3年前 , 9F
append兩次的問題我猜是讀了一個空的ttmp,也許可以
07/28 00:14, 9F

07/28 00:14, 3年前 , 10F
改成if(ttmp.isEmpty())
07/28 00:14, 10F
感謝各位的建議 ※ 編輯: applejuice64 (114.137.195.195 臺灣), 08/03/2020 15:06:03
文章代碼(AID): #1V5o4RIe (AndroidDev)
文章代碼(AID): #1V5o4RIe (AndroidDev)