java关于Socket连接错误问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java关于Socket连接错误问题相关的知识,希望对你有一定的参考价值。

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at QQ.Client$ClientThread.run(Client.java:173)

客户端 173行代码是 String str = br.readLine();
-------谁能告诉我是什么原因啊???

因为没有客户端连接或者没有服务器端支持。。。。
最好写个死循环,来等待客户端的连接,用服务器端用线程做,分别做客户端和服务器端,
然后先开启服务器端 来等待连接,然后开启客户端。。否则就会出错。
参考技术A 那不很明显么,你的at java.io.BufferedReader.readLine(Unknown Source) 有io异常说明你的br就找不到资源,顺着往上找at java.net.SocketInputStream.read(Unknown Source) 看出来,从你的SocketInputStream就没找到资源,检查一下你的代码是不是有和客户端不一样的参数 参考技术B br的问题

关于tcp连接对象在多进程中的错误:pickle.PicklingError

  • 如果需要在多进程中使用tcp连接的对象,那么不能再主进程中将这个对象创建好当做参数传给子进程,因为在创建子进程是需要序列化对象,然而socket对象是不能序列化的,会产生一个pickle.PicklingError的错误;

  • 所以创建socket对象可以在子进程中创建,也就是说多个子进程是不能使用同一个socket对象的。

以上是关于java关于Socket连接错误问题的主要内容,如果未能解决你的问题,请参考以下文章

socket 客户端编程:非阻塞式连接,错误判断及退出重连

java Socket聊天系统错误,求解啊,谢谢各位啦!!!!!

连接错误:io.socket.engineio.client.EngineIOException:xhr 轮询错误

Java和.NET下socket转换错误记录

Socket.io mysql连接错误

关于socket通信bind()返回值错误:10049