看板 java 關於我們 聯絡資訊
大家好 我想讓server端能回應client端 但是server端ServerSocket的accept方法會當掉 不知道該怎麼解決... 我用本機開啟server與client時 client程式不會當掉, 換另一台電腦去呼叫server時, server和client都會當掉 檢查過port, 也試過關防毒軟體 client程式碼如下(我寫在actionPerformed裡) byte buff[]=new byte[1024]; try { txa.append("Connect to Server"); Socket s=new Socket("140.113.59.165",11000); txa.append("Connection construced"); InputStream in=s.getInputStream(); int n=in.read(buff); txa.append("received from server"); txa.append(new String(buff,0,n)); in.close(); s.close(); } catch(Exception ex) { txa.append(e+"happen"); } server程式碼如下(同樣寫在actionPerformed) try { ServerSocket svs=new ServerSocket(11000); txa.append("wait for client's request"); Socket s=svs.accept(); //這行出現開始會當掉 txa.append("Connecting"); txa.append("Sending"); OutputStream out=s.getOutputStream(); String str="GOGOGO"; out.write(str.getBytes()); out.close(); s.close(); txa.append("Completed"); } catch(Exception ex) { txa.append(e+"happen"); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.59.165
LaPass:有印出什麼東西嗎? 09/30 12:49
又要謝謝你~client是直接連不上, server會印出第一行 wait for client's request 然後就當掉 ※ 編輯: vity 來自: 140.113.59.165 (09/30 13:12) ※ 編輯: vity 來自: 140.113.59.165 (09/30 13:12)
LaPass:可能沒當掉,只是一直卡在accept那邊等連線進來而已... = = 09/30 13:39
但是連不進去...冏
laiis:改用 nio 來寫就不會 block 了... 09/30 13:56
※ 編輯: vity 來自: 140.113.59.165 (09/30 14:15)
PsMonkey:你先確定一下實體網路的設定問題,說不定 IP 根本就..... 09/30 14:47
LaPass:嗯.... 換區網的IP試試看..... 09/30 14:55
LaPass:換127.0.0.1試試看也可以 09/30 16:36
本機也不行...真的不知道為什麼 ※ 編輯: vity 來自: 140.113.59.165 (09/30 19:54) 我用netstat -nao去檢查 發現我開的port 是出現在 協定 本機位址 外部位址 狀態 PID_# TCP [ : : ]: 11000 [ : : ]:0 Listening (是我javaw的process沒錯) 為何是開在這? 是這個的問題嗎? 開在140.113.59.165 或是127.0.0.1 例如[140.113.59.165:11000] 感覺比較對?...要怎麼改呢 ※ 編輯: vity 來自: 140.113.59.165 (09/30 20:27)
LaPass:沒遇過.... 我區網/本機/網際網路/android模擬器通通連很順 09/30 21:07
jackzzkao:有可能是 blocking 10/01 03:48
問題解決了, 回來說明一下解決過程 原本是用awt寫的, 改成用console後發現一切正常, 可傳資料 於是用console的server對awt的client =>不行 用console的client對 awt的server =>可以 推論:awt的client有問題 果然在將frame弄成物件時叫成別的class的 經修正可連線, 謝謝大家的幫忙, 最大的問題不是電腦 不是網路 是我啊@@ ※ 編輯: vity 來自: 140.113.59.165 (10/01 16:23)
LaPass:沒過用awt.... 這還真是神奇的狀況..... 10/01 17:02
sbrhsieh:樓上會錯意了,這跟 AWT 無關。 10/01 20:29
PsMonkey:弄個 thread 就可以了吧? 10/01 21:37