Re: [問題] socket傳送數值出錯
問題已經解決了...> <
學長說是因為每次read()都要用一個frame
所以做了多次的read()
造成有資料遺失...
所以才會變成讀取到的值都變成63
所以我改成用String做read write
把所有數值接在一起一次輸出一次接收...
謝謝大家的回應
經過這次又學到一招了
※ 引述《superlubu (叔叔你人真好)》之銘言:
: : rbw.write(controla[i+1]);
: : gui.border=br.read();
: : → andykid:我的值都可以正常讀入..除了height..每次都是63 01/17 12:56
: 你誤會了 write(int) 和 int read() 的用法,它們是用來寫/讀 character
: 而不是 integer 的,請看以下:
: import java.io.*;
: public class Test {
: public static void main(String[] argv) throws Exception {
: PipedOutputStream o = new java.io.PipedOutputStream();
: PipedInputStream i = new java.io.PipedInputStream(o);
: BufferedWriter w = new BufferedWriter(new OutputStreamWriter(o));
: w.write(100000);
: w.flush();
: o.flush();
: w.close();
: o.close();
: System.out.println("read: " + i.read());
: }
: }
: 結果出來仍然會是 63, 所有 write(int b) 中, b 值比 127 大的話,就會變成 63 的了
: 註: charset 問題,當 OutputStreamWriter 設成 charset = UTF-8,比 65535 大的數
: 便會當成 0
: 附帶一提,正常來說玩這種 primitive data transfer,java.io.DataInputStream 和
: java.io.DataOutputStream 是好物
--
簽名檔現在都要放相簿
謎一般的相簿
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 134.208.2.165
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 4 之 10 篇):