當前位置:首頁 » 編程語言 » 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();
}

}
熱點內容
蘋果手機軟體緩存清理 發布:2025-07-25 19:56:08 瀏覽:492
聲音設置為本機伺服器在另外一台電腦 發布:2025-07-25 19:53:29 瀏覽:673
怎麼在mac搭建伺服器 發布:2025-07-25 19:52:15 瀏覽:698
東財資料庫 發布:2025-07-25 19:43:42 瀏覽:760
浙江雙線伺服器租用哪家好雲空間 發布:2025-07-25 14:51:56 瀏覽:491
配置低的電腦如何優化 發布:2025-07-25 14:51:44 瀏覽:7
vb資料庫管理系統 發布:2025-07-25 14:47:05 瀏覽:337
微信公眾號上傳封面圖顯示空白 發布:2025-07-25 14:22:15 瀏覽:458
鄭州少兒編程培訓 發布:2025-07-25 14:21:07 瀏覽:791
ftp命令linux安裝 發布:2025-07-25 14:21:06 瀏覽:725