package lesson01;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;//TCP服务端publicclassTcpServerDemo01 {publicstaticvoidmain(String[] args) {ServerSocketserverSocket=null;Socketsocket=null;InputStreamis=null;ByteArrayOutputStreambaos=null;try {//1、我得要一个地址 serverSocket = newServerSocket(9999);while (true) {//2、等待客户端连接过来 socket = serverSocket.accept();//3、读取客户端的消息 is = socket.getInputStream();//管道流 baos = newByteArrayOutputStream();byte[] buffer = newbyte[1024];int len;while ((len = is.read(buffer)) != -1) { baos.write(buffer,0,len); } System.out.println(baos.toString()); } }catch (IOException e){ e.printStackTrace(); }finally{//关闭资源if(socket!=null){try { baos.close(); } catch (IOException e) { e.printStackTrace(); } }if (is!=null){try { is.close(); } catch (IOException e) { e.printStackTrace(); } }if (socket!=null){try { socket.close(); } catch (IOException e) { e.printStackTrace(); } }if (serverSocket!=null){try { serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } }}

package lesson01;import java.io.IOException;import java.io.OutputStream;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner;//TCP客户端public class TcpClientDemo01 { public static void main(String[] args) { Socket socket = null; OutputStream os = null; Scanner scanner = null; try{ //1、要知道服务器的地址,端口号 InetAddress serverIP = InetAddress.getByName("127.0.0.1"); int port = 9999; //2.创建一个socket连接 System.out.println("正在连接服务器 " + serverIP.getHostAddress() + ":" + port+ "..."); socket = new Socket(serverIP,port); //3.发送消息 IO流 os = socket.getOutputStream();// os.write("你好....".getBytes()); scanner = new Scanner(System.in); System.out.println("已连接服务器!请输入消息(输入 'exit' 退出):"); //2.循环读取用户输入并发送 while (true){ System.out.println(">>> "); String input = scanner.nextLine(); //推出条件 if ("exit".equalsIgnoreCase(input)||"quit".equalsIgnoreCase(input)){ System.out.println("正在断开连接..."); break; } //发送消息(带换行符,方便服务器按行读取) os.write((input + "\n").getBytes("UTF-8")); os.flush(); } } catch (Exception e) { e.printStackTrace(); }finally { if (os!=null){ try{ os.close(); }catch (IOException e){ e.printStackTrace(); } } if (socket!=null){ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } }}