導航:首頁 > 編程語言 > javasocket編程阻塞

javasocket編程阻塞

發布時間:2022-06-02 13:24:00

java socket 阻塞和非阻塞 會對數據傳輸有什麼影響

阻塞會導致你的程序停在這里不往下走 非阻塞時,你的程序可以一邊干其他事情(比如顯示個進度條),以便等數據過來。

Ⅱ 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();
}

}

Ⅲ java SOCKET編程 ,如何跳出accept() 阻塞

首先你這個邏輯就有問題
你如果想先將數據發給客戶端,那麼必須要讓客戶端先連接到服務端,你才能進行發送對吧
那麼你就可以把這個總是細分,第一步,客戶端連接到用器,這時候你的伺服器才能向客戶端發送資料庫,第二步客戶端處理完服務端的數據,再次向服務端發送數據

另外,你服務端應該用多線程進行交互
即一發現有客戶端連接
就立馬啟動一條線程來處理請求

Ⅳ java socket 服務端接收數據阻塞。

伺服器端處理的太慢了吧?

Ⅳ JAVA socket傳送文件一直被阻塞

是不能等於-1撒..

他在等你那邊給他寫東西呢..

你應該在伺服器端結束的時候給他寫個東西過去..讓他知道已經結束了..

還有什麼問題HI我哈

但是read方法本身不就有告知客戶端文件傳送結束的功能么 當讀到文件結束符的時候它會返回-1的啊

確實讀文件結束就是-1...
但是你的客戶端讀的不是文件啊..伺服器才是讀文件..所以伺服器能正常結束..
你的客戶端讀的伺服器發來的東西..伺服器讀文件結束後就不給客戶端發信息了..
而客戶端的read()方法是阻塞式方法..意思就是伺服器不傳給他數據他就會一直等..

所以還是那樣..在伺服器端結束的時候給客戶端發個消息說明已經結束了..客戶端讀到這個結束標志的時候也就不要再往文件裡面寫東西了..也結束..這樣你的程序就正確了..

Ⅵ JAVA socket聊天室程序 readLine()阻塞

對每一個客戶端都建立一個線程來接收消息,發消息與接消息不要在同一線程上,那就才能解決阻塞問題。一般新手用socket編程,大都是遇到阻塞問題不懂解決,導致了收發消息失敗。其實網上socket聊天通訊的例子大把,遇到問題查查看,思考下就能明白了。

有問題歡迎提問,滿意請採納,thx.

閱讀全文

與javasocket編程阻塞相關的資料

熱點內容
人民幣怎麼演算法 瀏覽:754
什麼app可以聽懂刺蝟說話 瀏覽:596
安卓機內存小如何擴大 瀏覽:125
粉絲伺服器怎麼和安卓手機通信 瀏覽:398
初中數學競賽pdf 瀏覽:568
linux自定義安裝 瀏覽:186
fpic要在每個編譯文件 瀏覽:866
編譯原理廣義推導的定義 瀏覽:911
怎麼在已有的壓縮文件里加密碼 瀏覽:517
安卓手機怎麼設置系統軟體 瀏覽:766
php前端java後端 瀏覽:794
數據框轉換為矩陣python 瀏覽:74
單片機程序反匯編 瀏覽:853
編程和實物不一樣 瀏覽:880
天官賜福小說什麼app可看 瀏覽:208
原車空調改壓縮機 瀏覽:103
python調用其它文件中的函數 瀏覽:484
安卓車載大屏如何下載歌詞 瀏覽:959
刪除這些文件夾 瀏覽:675
新建文件夾怎麼設置快捷搜索 瀏覽:503