客户端:
1. 数据发送:
//1.连接 Socket sk = new Socket(address,port); //2.连接上之后放到输出流中 OutputStream os = sk.getOutputStream(); // 3.将对象的格式表示打印到文本输出流 PrintWriter pw = new PrintWriter(os); //4.向服务器写入需要发送信息! pw.write("向服务器发送信息!"); //刷新write,不然服务端可能接收不到数据。 pw.flush(); //5.禁用此套接字的输出流。 sk.shutdownOutput();服务器端
//开启服务 ServerSocket ssocket = new ServerSocket(port); //等待连接的Socket,他在等生成实例,生成了便说明有连接成功了 Socket socket ; while(true){ socket = ssocket.accept(); //每接收到一个客户端连接刚创建一个线程来处理该连接的情况 Thread t = new Thread(new MyRunnable(socket)); t.start(); } 服务器接收数据: Socket socket ; //1.连接上之后获取对方传过来的信息 InputStream ins = socket.getInputStream(); //2.将字节流数据转换成字符流数据放到字符缓冲流中 BufferedReader br = new BufferedReader(new InputStreamReader(ins)); //3.解析数据 StringBuffer info = new StringBuffer(); String linedata = null; //将信息收信进info while((linedata = br.readLine() ) != null){ info.append(linedata); } //将信息按约定的解析 String[] list = info.toString()==null?null:info.toString().split(";"); //4.禁用此套接字的输入流 socket.shutdownInput(); 服务器输出数据 //1.将结果返回给客户端 OutputStream os = socket.getOutputStream(); // 2.将对象的格式表示打印到文本输出流 PrintWriter pw = new PrintWriter(os); //3.向客户端发送数据 pw.write("向客户端发送数据"); pw.flush(); //4.禁用此套接字的输出流 socket.shutdownOutput();注意: 相关流的关闭(如:br.close())
