[問題] Socket傳值請益
安安各位大大好
小弟最近剛接觸Socket
想利用Socket再App上能夠與一台機器做連線
而這台機器是傳正確值給它 它就能夠根據訊息回傳值回來
因此貌似是不需要server端的程式碼(自己也不太確定)
而最近有透過程式大概確定有連線成功
但現在卡在我該怎麼傳正確的值給它了
正確的值會像以下的圖
https://imgur.com/TQFDlIx.jpg
現在問題就是
我該怎麼像圖片那樣
一次是傳五個byte的值啊
還是得要分五次?
但分五次server端不就會誤以為每次只傳一個數值嗎
真的不知道這邊該怎麼解決
抱歉小弟新手
如果解答很簡單還望各位大大不要生氣~
如有需要程式碼 因專案不在身邊
恐怕要等明天後再貼上
在此補上程式碼網址
https://www.codepile.net/pile/X4KGPe4Q
謝謝各位觀看與解惑
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.38.120
※ 文章網址: https://www.ptt.cc/bbs/java/M.1517929860.A.914.html
※ 編輯: daniel098962 (39.10.38.120), 02/06/2018 23:13:17
推
02/07 07:51,
6年前
, 1F
02/07 07:51, 1F
→
02/07 07:51,
6年前
, 2F
02/07 07:51, 2F
※ 編輯: daniel098962 (61.216.92.108), 02/07/2018 10:04:20
推
02/07 10:27,
6年前
, 3F
02/07 10:27, 3F
→
02/07 10:30,
6年前
, 4F
02/07 10:30, 4F
推
02/07 10:33,
6年前
, 5F
02/07 10:33, 5F
→
02/07 10:34,
6年前
, 6F
02/07 10:34, 6F
→
02/07 10:34,
6年前
, 7F
02/07 10:34, 7F
→
02/07 10:35,
6年前
, 8F
02/07 10:35, 8F
→
02/07 10:35,
6年前
, 9F
02/07 10:35, 9F
→
02/07 10:36,
6年前
, 10F
02/07 10:36, 10F
推
02/07 10:43,
6年前
, 11F
02/07 10:43, 11F
→
02/07 10:43,
6年前
, 12F
02/07 10:43, 12F
感謝Z大回文,抱歉小弟沒說清楚
確實現在最大的問題,便是不知道設備到底是怎麼接收資料的
只知道這個設備是透過RS232指令監控的
所以現在心裡的想法是想傳一組數列給設備
想用int[]去傳 但看到read(write)似乎只有接受byte[]的傳法
想請教該怎麼傳int[]
另外在上面也附上程式碼了
目前大概是最後的DataSendGet方法那邊不清楚該怎麼做
感謝~
※ 編輯: daniel098962 (61.216.92.108), 02/07/2018 12:18:36
推
02/07 13:48,
6年前
, 13F
02/07 13:48, 13F
推
02/07 13:52,
6年前
, 14F
02/07 13:52, 14F
→
02/07 13:52,
6年前
, 15F
02/07 13:52, 15F
→
02/07 14:41,
6年前
, 16F
02/07 14:41, 16F
→
02/07 14:44,
6年前
, 17F
02/07 14:44, 17F
→
02/07 14:45,
6年前
, 18F
02/07 14:45, 18F
→
02/07 14:46,
6年前
, 19F
02/07 14:46, 19F
→
02/07 14:48,
6年前
, 20F
02/07 14:48, 20F
喔喔 感謝兩位大大
現在我程式碼改成這樣
https://imgur.com/S5Jbded.jpg
Server也有回應了....
但東西不是像我測試時是00 00
反而是2
是我傳回來的值沒轉換對的型態嗎
那是哪種型態啊
感謝
※ 編輯: daniel098962 (61.216.92.108), 02/07/2018 15:48:28
我後來的想法是 他回傳2是告訴我設備回傳了bytes[0],bytes[1]兩個給我
而我要的是知道bytes[0],bytes[1]的值各是多少
因此我後來加上一段程式碼讓它裡面的值轉String show出來
但變成下面這樣...
https://imgur.com/s2vCjHX.jpg
因為之前有宣告buff為byte[1024]的陣列
估計是跑出1024個0了...
剛好設備回傳的值也是0
看不出來前兩個這樣算不算正確了哈哈
現在問題是
因為根據不同的指令 設備回傳的值的長短也會不一
這邊我該怎麼設計讓它每次都是show給我剛剛好長度的值啊
感謝
※ 編輯: daniel098962 (61.216.92.108), 02/07/2018 16:20:48
後來我寫了一個for迴圈
想說既然in.read(...)那行跑出來是2
我宣告一個int = in.read(...)
在寫個for迴圈讓它印出來
程式如下圖
https://imgur.com/QfYmwnw.jpg
但沒有任何東西跑出來欸
而且程式就當了...
有人知道怎麼回事嗎
感謝
※ 編輯: daniel098962 (61.216.92.108), 02/07/2018 16:51:07
→
02/07 16:53,
6年前
, 21F
02/07 16:53, 21F
→
02/07 16:58,
6年前
, 22F
02/07 16:58, 22F
→
02/07 16:58,
6年前
, 23F
02/07 16:58, 23F
抱歉S大 有關於read那部分有點看不懂 所以我取回的是?
另外剛剛也有發現buff[i]設錯了
後來把紅框程式往上移就有東西出現了
但黃框的println卻沒跑出來...
如以下
https://imgur.com/UOnDocW.jpg
※ 編輯: daniel098962 (61.216.92.108), 02/07/2018 17:02:21
→
02/07 17:14,
6年前
, 24F
02/07 17:14, 24F
→
02/07 17:15,
6年前
, 25F
02/07 17:15, 25F
→
02/07 17:18,
6年前
, 26F
02/07 17:18, 26F
喔喔~ 原來如此哈哈
抱歉竟然連這這麼基本的都不知道~
那s大想再向您請教 有關於如何檢查是否>=0
我該把條件設在哪
因為我現在好像就遇到問題了...
現在回傳給我的值都是負的...
抱歉又來叨擾各位了
昨天測試一筆新的組數
照理來說會跑出80 8C 如下圖
https://imgur.com/Pj4sg4I.jpg
但發現跑出來是負數
https://imgur.com/FgFO5lF.jpg
想一想後覺得可能是轉16進制的問題
因此轉了後如下圖
https://imgur.com/TkfXMhn.jpg
確實最後是我想要的
但今天只想取數值 前面的fffff不想取出
因此天真如我以為補數能幫我解決
但發現補數後的值完全跑掉了
https://imgur.com/c4wkV6j.jpg
想請教大家 我可以怎樣取我想要的東西呢
感謝
※ 編輯: daniel098962 (61.216.92.108), 02/07/2018 18:11:30
※ 編輯: daniel098962 (61.216.92.108), 02/08/2018 10:12:43
推
02/08 10:27,
6年前
, 27F
02/08 10:27, 27F
→
02/08 10:30,
6年前
, 28F
02/08 10:30, 28F
推
02/08 12:31,
6年前
, 29F
02/08 12:31, 29F
→
02/08 12:32,
6年前
, 30F
02/08 12:32, 30F
→
02/08 12:33,
6年前
, 31F
02/08 12:33, 31F
→
02/08 12:33,
6年前
, 32F
02/08 12:33, 32F
→
02/08 12:34,
6年前
, 33F
02/08 12:34, 33F
→
02/08 12:35,
6年前
, 34F
02/08 12:35, 34F
感謝各位的指教
這是真的 對於java的基礎還是太多不了解
現在也是邊從網路上尋找 也一邊看書找有沒有對應的資訊
但這專案算是近期需要完成
才會想來這邊向大家求解或提供一個邏輯方向思考
感謝各位了~~~
※ 編輯: daniel098962 (61.216.92.108), 02/08/2018 13:15:58
最後也有成功讓他跑出來了
感謝各位的幫忙~
https://imgur.com/RT4fWB2.jpg
※ 編輯: daniel098962 (61.216.92.108), 02/08/2018 13:55:51
→
02/10 12:56,
6年前
, 35F
02/10 12:56, 35F
→
02/10 13:04,
6年前
, 36F
02/10 13:04, 36F
java 近期熱門文章
PTT數位生活區 即時熱門文章