第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

socket中輸入輸出流問題

在我編程中遇到了一個問題,就是客戶端如果不關(guān)閉輸入流的話,服務(wù)端與客戶端之間的通訊就會卡住,只要一調(diào)用socket。shutdownInput關(guān)閉輸入流就正常

客戶端代碼

public static void main(String[] args) {

try {

//1.創(chuàng)建socket對象,指明需要連接的服務(wù)器的地址和端口號

Socket clientSocket=new Socket("localhost", 8811);

//2.連接建立后,通過輸出流向服務(wù)器端發(fā)送請求消息

OutputStream os=clientSocket.getOutputStream();

PrintWriter pw=new PrintWriter(os);

pw.write("用戶名 : admin 密碼 :123");

pw.flush();

System.out.println("發(fā)送成功");

clientSocket.shutdownOutput();//只要把這行給注釋了,通訊就會卡住

//3.通過輸入流獲取服務(wù)器的響應(yīng)信息

InputStream is=clientSocket.getInputStream();

InputStreamReader isr=new InputStreamReader(is);

BufferedReader br=new BufferedReader(isr);

String serverSay=br.readLine();

System.out.println("這里是客戶端? ,服務(wù)端說 : "+serverSay);

//4.關(guān)閉資源

clientSocket.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

求大神解答一下原因

正在回答

1 回答

找到原因來了,問題在于服務(wù)器端是用來BufferedReader的readLine函數(shù),這個函數(shù)只用在讀到換行符的時候才會結(jié)束,不然會一直是阻塞的狀態(tài)。而我這里發(fā)送的時候沒有加上換行符就會產(chǎn)生阻塞的現(xiàn)象,而我關(guān)閉了輸出流,就等與強(qiáng)制結(jié)束了readLIne函數(shù)的進(jìn)程,所以也能解決問題。

1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

socket中輸入輸出流問題

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號