网上有一个socket的java线程通信例子跑不起来

发布于 2021-11-18 06:57:26 字数 610 浏览 994 评论 6

客户端发送数字,服务器加倍后返回个客户端的一个例子,客户端运行的时候报这样一个错误

java.net.SocketException: Connection reset
 at java.net.SocketInputStream.read(SocketInputStream.java:189)
 at java.net.SocketInputStream.read(SocketInputStream.java:121)
 at java.net.SocketInputStream.read(SocketInputStream.java:203)
 at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:337)
 at java.io.DataInputStream.readUTF(DataInputStream.java:589)
 at java.io.DataInputStream.readUTF(DataInputStream.java:564)
 at test11.Test11.main(Test11.java:34)

求教

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

月亮是我掰弯的 2021-11-22 04:33:02

这个程序是有bug的...你自己处理下吧...

明月松间行 2021-11-22 04:05:40

这是客户端的代码
public class Test11 {
    public static void main(String[] args) {
       
        String s="";
        Socket sock;
        DataInputStream in;
        DataOutputStream out;
        try{
            sock=new Socket("127.0.0.1",4331);
            System.out.println("Send");
            in=new DataInputStream(sock.getInputStream());
            out =new DataOutputStream(sock.getOutputStream());
            for(int i=1;i<10;i+=2){
                out.writeUTF(" "+i);
                s=in.readUTF();
                System.out.print("get "+s);
                Thread.sleep(500);
            }
            sock.close();
        }catch(Exception e){
            e.printStackTrace();
        }

    }
}

这是服务器的代码

public class Test12 {

   
    public static void main(String[] args) {
        
        ServerSocket server = null;
        Socket sock;
        String s;
        DataInputStream in;
        DataOutputStream out;
        try{
            server=new ServerSocket(4331);
        }catch(IOException e){
           System.out.println(e);
        }
       
        try{
            System.out.println("watting");
            sock=server.accept();
            out=new DataOutputStream(sock.getOutputStream());
            in=new DataInputStream(sock.getInputStream());
            while(true){
                s=in.readUTF();
                int x=Integer.parseInt(s);
                out.writeUTF( ""+x+"" +x*2);
                System.out.println("get "+s);
                Thread.sleep(500);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

 

坚持沉默 2021-11-22 03:01:14

代买我贴在下面了

累赘 2021-11-21 11:02:13

你...ip需要改么?看下34行...上下文.

等风来 2021-11-21 09:46:51

谢谢了

岁月打碎记忆 2021-11-19 02:33:18

for(int i=1;i<10;i+=2){

            out.writeUTF(""+i);

            s=in.readUTF();

客户端""里没有空格!!!!!转换成int!有空格就报异常了.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文