當前位置:首頁 » 編程語言 » javasocket讀取

javasocket讀取

發布時間: 2025-01-19 16:59:48

『壹』 java ServerSocket和Socket通訊代碼無法讀取信息

兩個問題,造成阻塞
1)readLine()讀到換行是才返回,所以info=「前來報到/r/n」
2)server端的while循環導致阻塞,因為他一直在讀,但是client端就寫了一次,所以server一直在等在,現在把兩個while改為if,就可以
你先試下

建議用printwriter

『貳』 java編程中,Socket通信是怎麼實現的

java編程對於Socket之間的通信過程如下:

服務端往Socket的輸出流裡面寫東西,客戶端就可以通過Socket的輸入流讀取對應的內容。Socket與Socket之間是雙向連通的,所以客戶端也可以往對應的Socket輸出流裡面寫東西,然後服務端對應的Socket的輸入流就可以讀出對應的內容。下面來看一些服務端與客戶端通信的例子:

publicclassServer{

publicstaticvoidmain(Stringargs[])throwsIOException{
//為了簡單起見,所有的異常信息都往外拋
intport=8899;
//定義一個ServerSocket監聽在埠8899上
ServerSocketserver=newServerSocket(port);
//server嘗試接收其他Socket的連接請求,server的accept方法是阻塞式的
Socketsocket=server.accept();
//跟客戶端建立好連接之後,我們就可以獲取socket的InputStream,並從中讀取客戶端發過來的信息了。
Readerreader=newInputStreamReader(socket.getInputStream());
charchars[]=newchar[64];
intlen;
StringBuildersb=newStringBuilder();
while((len=reader.read(chars))!=-1){
sb.append(newString(chars,0,len));
}
System.out.println("fromclient:"+sb);
reader.close();
socket.close();
server.close();
}

}
客戶端代碼
Java代碼publicclassClient{

publicstaticvoidmain(Stringargs[])throwsException{
//為了簡單起見,所有的異常都直接往外拋
Stringhost="127.0.0.1";//要連接的服務端IP地址
intport=8899;//要連接的服務端對應的監聽埠
//與服務端建立連接
Socketclient=newSocket(host,port);
//建立連接後就可以往服務端寫數據了
Writerwriter=newOutputStreamWriter(client.getOutputStream());
writer.write("HelloServer.");
writer.flush();//寫完後要記得flush
writer.close();
client.close();
}

}
熱點內容
matlab粒子群優化演算法 發布:2025-03-07 08:13:49 瀏覽:247
編譯原理翻譯 發布:2025-03-07 08:08:01 瀏覽:590
安卓光遇測試服為什麼伺服器錯誤 發布:2025-03-07 08:05:53 瀏覽:548
火狐緩存文件夾 發布:2025-03-07 08:05:51 瀏覽:110
代碼編程庫 發布:2025-03-07 08:05:09 瀏覽:179
js遠程腳本 發布:2025-03-07 07:54:31 瀏覽:2
linux修改用戶目錄 發布:2025-03-07 07:46:24 瀏覽:457
六個文件夾名稱 發布:2025-03-07 07:45:28 瀏覽:850
華威隨身網路的密碼是什麼 發布:2025-03-07 07:43:07 瀏覽:667
我的世界伺服器生存怎麼改創造 發布:2025-03-07 07:39:53 瀏覽:790