eclipse基于socket通訊某報錯原因的解決方法
最近在eclipse開發基于socket通訊方面,出現了一個錯誤
java.io.StreamCorruptedException: invalid stream header: 64000000
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
然后我開始查找解決方法,其中我發現有兩種原因,可能會出現這個錯誤
1.在初始化鏈接時,如果先創建輸入流,再創建輸出流可能會報錯,正確創建順序如下:
ObjectOutputStream output=new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream input=new ObjectInputStream(socket.getInputStream());
ObjectInputStream input=new ObjectInputStream(socket.getInputStream());
2.很不幸,我的程序當時的創建順序是同上的,也就是說不是以上的原因,那是什么原因呢,相信很多網友也不是上述原因,
經過各種排錯,發現原因竟然是socket的端口被阻塞了,也就是我們需要更換端口號來解決,具體做法如下:
例如我之前在一個properties里面的
HOST=localhost
PORT=8888
PORT=8888
我們只需要換成8000,就可以解決問題
實際上是
serverSocket = new ServerSocket(8000);
相信網友們已經解決了問題了吧,如果還有問題,歡迎反饋,謝謝
個人網站 www.software8.co
個人網站 www.software8.co