作者twonia (小東)
看板java
標題[問題] 莫名的BUG= =
時間Sat Apr 28 01:43:57 2012
小弟原本在寫簡易傳輸檔案的程式(如上一篇)
但是後來發現好像在非常根源的地方就有出問題了
不過卻不知道問題在哪
所以希望能簡單的幫我De個小Bug
就是有關傳送字串的問題= =a
Client端
Socket clientSocket = new Socket(serverAddress, serverPort);
BufferedReader inFromUser = new BufferedReader(new
InputStreamReader(System.in));
DataOutputStream outToServer = new
DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
System.out.println("ftp>Connected with "+serverAddress+
serverPort);
while(true)
{
comm = inFromUser.readLine();
if(comm.substring(0,3).equals("ldi"))
{
ldir();
}
else if(comm.substring(0,3).equals("put"))
{
outToServer.writeBytes(comm);
else
{
System.out.println("指令輸入錯誤");
}
}
在Server端
ServerSocket welcomeSocket = new ServerSocket(serverPort);
Socket connectionSocket = welcomeSocket.accept();
System.out.println("Hi, connect confirm");
BufferedReader inFromClient = new BufferedReader (new
InputStreamReader(connectionSocket.getInputStream()));
get = inFromClient.readLine();
System.out.println(get);
int k = get.length();
System.out.println(k);
comm = get.substring(0,3);
理論上
只有一個發送和一個接收
假設我打put test01.txt在client端
但是到了Server卻讀不出來
之前原本把FTP的部份也放入的時候還更扯
我打put test01.txt
他還自己變成put test01.txt78 (暗指我78!?)
所以我到底是哪個地方重複定義到之類的嗎?
還是重複傳送了= =
現在感覺離真相不遠
卻卡在很莫名的地方了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.57.219.8
推 LaPass:妳的系統是不是Windows?伺服器是不是Linux?如果是,去查 04/28 02:00
推 LaPass:一下Java的char 78是什麼,如果是\r,那就是換行符號問題 04/28 02:02
推 LaPass:唔... 78是N 看來不是....... 04/28 02:10
→ tkcn:client 用 writeBytes 送,server 用 readLine 接,當然不行 04/28 08:09
→ twonia:是喔ˊˋ~可是之前寫都接得到的說... 04/28 11:37
推 LaPass:唔....readline? comm裡面有包含\n嗎? 04/28 12:24
→ twonia:沒耶~"~我的指令都很單純的一行文 04/28 12:45
推 LaPass:唔.... 剛剛試了一下,用DataOutputStream .writeBytes() 04/28 13:24
推 LaPass:BufferedReader .readLine()去接,可以正常收發。 04/28 13:27
→ twonia:真是莫名的BUG-.-+我看乾脆全部砍掉重打說不定就過了... 04/28 13:59
→ tkcn:如果 writeBytes 後面接的是 EOL, EOF,當然還是接得下來 04/28 14:50
推 LaPass:試試看 outToServer.writeBytes(comm+"\n"); 04/28 16:17
推 LaPass:如果成功的話,原PO妳要感謝tkcn。 04/28 16:20
→ sbrhsieh:BufferedReader::readLine 是 "\r", "\n", "\r\n" 都吃的 04/28 17:20
→ twonia:感動ˊˋ~加了 \n連檔案問題都解決了 04/28 18:09
→ twonia:感謝偉哉tkcn和LaPass大大的不離不棄幫忙Debug 04/28 18:17