要求:客户端向服务端发送一串文字,服务端接受等待客户端的连接,连接成功之后接受客户端传输过来的信息,并将信息打印在控制台上
服务端
public void server(){ServerSocket serverSocket = null;InputStream inputStream = null;try{// 创建一个服务端的 socketserverSocket = new ServerSocket(8888);// 接受一个客户端的连接Socket clientSocket = serverSocket.accept();// 获得客户端传入过来的文字的输入流inputStream = clientSocket.getInputStream();// 把输入流写到 buffer 中byte[] buffer = new byte[1024];ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();int len;while((len = inputStream.read(buffer)) != -1){byteArrayOutputStream.write(buffer,0,len);}System.out.println(byteArrayOutputStream);}catch (IOException e){e.printStackTrace();}finally {// 对需要关闭的连接资源进行手动关闭//noinspection DuplicatedCodeif(serverSocket != null){try {serverSocket.close();} catch (IOException e) {e.printStackTrace();}}if(inputStream != null){try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}}
客户端
public void client(){Socket socket = null;OutputStream outputStream = null;String str = "你好,服务端。我是客户端";try{// 创建一个 ip 地址对象InetAddress ip = InetAddress.getByName("127.0.0.1");// 创建一个客户端 socketsocket = new Socket(ip,8888);// 创建一个输出流,用于数据的传出outputStream = socket.getOutputStream();outputStream.write(str.getBytes());}catch (IOException e){e.printStackTrace();}finally {// 对必要的连接进行手动关闭释放if(socket != null){try {socket.close();} catch (IOException e) {e.printStackTrace();}}if(outputStream != null){try {outputStream.close();} catch (IOException e) {e.printStackTrace();}}}}
运行
1、先启动服务端等待客户端的连接
2、启动服务端向客户端发送数据
3、服务端接受到数据并打印出来
