導航:首頁 > 編程語言 > javasocket異常

javasocket異常

發布時間:2022-08-13 19:56:49

java中使用Socket連接,關閉是出異常如何處理

你光有try catch,但實際並未對產生的網路異常進行處理,然後繼續循環,那自然是無限異常下去了。只要在catch到異常後進行相應處理即可,比如關閉連接,然後退出。在服務端,客戶端都加上這個處理,比如在客戶端加,如下

publicvoidrun()
{
while(true)
{
Useru=newUser();
u.setName("1");
ObjectOutputStreamoos;
try
{

oos=newObjectOutputStream(s.getOutputStream());
oos.writeObject(u);
}
catch(Exceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();

//注意,這邊會看到顯示的是true,因為對方並沒有調用close來關閉連接,而是直接終止程序
System.out.println(s.isConnected());

if(s!=null)
{
try
{
s.close();
s=null;
}
catch(Exceptionex)
{
ex.printStackTrace();
}

System.out.println("遠程連接異常,關閉連接");
return;
}
}
}
}

註:

你的這種情況即不能用u=ois.readObject())!=null來判斷,也不能用s.isConnected&&!s.isColse()來判斷,因為你是直接終止服務端或者客戶端的運行,而不是先close連接,再終止程序。

㈡ java里socket通信,異常處理問題。

直接用這種方式處理:

while(true){
socket=newSocket(("192.168.183.1",9002);
socket.setSoTimeout(5000);//5000ms=5s
try{
socket.connect();
}catch(IOExceptione){
//這行寫你提示通信失敗提示
continue;
}
}

㈢ Java socket 編程 連接失敗!

如果是不停的發送數據,你可以維持一個socket長連接,當客戶端連接上發送完數據後不要關閉socket,繼續發送握手信息以維持連接。客戶端很多的話就用線程池ThreadPoolExecutor.
具體資料:

㈣ java異常處理:關於Socket編程的

當輸入過程中意外到達文件或流的末尾時,拋出此異常。 此異常主要被數據輸入流用來表明到達流的末尾。注意,其他許多輸入操作返回一個特殊值表示到達流的末尾,而不是拋出異常。
代碼太少,無法再細說了。

㈤ java.net.SocketTimeoutException: Read timed out

具體的解決方法如下:


修改tomcat配置文件server.xml,找到類似於下面配置:

<Connector port="8086" maxHttpHeaderSize="8192"。

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"。

enableLookups="false" redirectPort="8443" acceptCount="100"。

connectionTimeout="20000" disableUploadTimeout="true" /> 。

將上面的參數disableUploadTimeout值改為false即可。

閱讀全文

與javasocket異常相關的資料

熱點內容
做賬為什麼要用加密狗 瀏覽:583
考研群體怎麼解壓 瀏覽:156
linux修改命令提示符 瀏覽:224
圓圈裡面k圖標是什麼app 瀏覽:59
pdf加空白頁 瀏覽:945
linux伺服器如何看網卡狀態 瀏覽:316
解壓新奇特視頻 瀏覽:704
圖書信息管理系統java 瀏覽:552
各種直線命令詳解 瀏覽:862
程序員淚奔 瀏覽:146
素材怎麼上傳到伺服器 瀏覽:515
android百度離線地圖開發 瀏覽:189
web可視化編程軟體 瀏覽:292
java筆試編程題 瀏覽:746
win11什麼時候可以裝安卓 瀏覽:564
java不寫this 瀏覽:1001
雲點播電影網php源碼 瀏覽:97
pythonclass使用方法 瀏覽:226
移動加密軟體去哪下載 瀏覽:294
php彈出alert 瀏覽:209