A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一小丢丢 中级黑马   /  2016-10-21 15:30  /  1283 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为啥运行第二段代码总报错啊.求指点.好难过
public class Demo_02Client {
        public static void main(String[] args) throws IOException {
                Socket socket = new Socket(InetAddress.getLocalHost(), 8888);
                OutputStream outputStream = socket.getOutputStream();
                outputStream.write("你好!!!".getBytes());
                outputStream.close();
                socket.close();
                System.out.println("传输完毕");
        }
}
public class Demo_03Server2 {
        public static void main(String[] args) throws IOException {
                System.out.println("服务端启动......");
                ServerSocket ss = new  ServerSocket(8888);
                while (true) {
                        Socket accept = ss.accept();
                        InputStream inputStream = accept.getInputStream();
                        byte[] b = new byte[100];
                        int len= inputStream.read(b);
                        String string = new String(b, 0, len);
                        System.out.println(string);
                        inputStream.close();
                        accept.close();
                        ss.close();
                }
        }
}

9 个回复

正序浏览
这样写代码,规范美观,有错误,看错误原因,一步一步debug

下面这是良好的代码

public class Client {
        public static void main(String[] args) {
                String s=null;
                Socket mysocket;
                DataInputStream in=null;
                DataOutputStream out=null;
                try {
                        mysocket=new Socket("127.0.0.1",4331);
                        in=new DataInputStream(mysocket.getInputStream());
                        out=new DataOutputStream(mysocket.getOutputStream());
                        for(int k=1;k<100;k=k+2){
                                out.writeUTF(""+k);
                                s=in.readUTF();
                                System.out.println("客户收到"+s);
                                Thread.sleep(500);
                        }
                } catch (Exception e) {
                        System.out.println("服务器已断开"+e);
                }
        }
}

public class Server {
        public static void main(String[] args) {
                ServerSocket server=null;
                Socket you=null;
                String s=null;
                DataOutputStream out=null;
                DataInputStream in=null;
                try {
                        server=new ServerSocket(4331);
                } catch (Exception e) {
                        System.out.println(e);
                }
                try {
                        System.out.println("等待客户呼叫");
                        you=server.accept();
                        out=new DataOutputStream(you.getOutputStream());
                        in=new DataInputStream(you.getInputStream());
                        while(true){
                                s=in.readUTF();
                                int m=Integer.parseInt(s);
                                out.writeUTF("你好,我是服务器");
                                out.writeUTF("你说的数乘2后是:"+2*m);
                                System.out.println("服务器收到:"+s);
                                Thread.sleep(500);
                        }
                } catch (Exception e) {
                        System.out.println("客户端已断开"+e);
                }
        }
}
回复 使用道具 举报
关闭资源应在循环外吧
回复 使用道具 举报
你报什么异常
回复 使用道具 举报
先运行service 。在运行client
回复 使用道具 举报
客户端的
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
服务端的
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
回复 使用道具 举报
你导包 导的哪个包?贴上来看看
回复 使用道具 举报
438944209 发表于 2016-10-21 15:37
你的socket只是建立了,没发送吧,小白路过

不是两个都需要发送吗,我都运行了,还是报异常
回复 使用道具 举报
438944209 发表于 2016-10-21 15:37
你的socket只是建立了,没发送吧,小白路过

我先运行的Server2代码,然后就报错了.
回复 使用道具 举报
你的socket只是建立了,没发送吧,小白路过
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马