如果需要在多进程中使用tcp连接的对象,那么不能再主进程中将这个对象创建好当做参数传给子进程,因为在创建子进程是需要序列化对象,然而socket对象是不能序列化的,会产生一个pickle.PicklingError的错误;
所以创建socket对象可以在子进程中创建,也就是说多个子进程是不能使用同一个socket对象的。
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
以上是关于java关于Socket连接错误问题的主要内容,如果未能解决你的问题,请参考以下文章
java Socket聊天系统错误,求解啊,谢谢各位啦!!!!!