TCP服务端
import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class TCPServer { public static void main(String[] args) throws IOException { /* 获取客户端的数据并显示在屏幕上 1.创建tcp服务端socket,明确端口,监听一个端口 2.服务端只要获取到连接过来的客户端就可以和指定的客户端通信了 3.通过获取客户端的读取流对象读取客户端发来的数据 4.并显示屏幕上 5.关闭资源 */ System.out.println("服务端启动"); // 创建tcp服务端socket,明确端口,监听一个端口 ServerSocket serverSocket = new ServerSocket(6666); while (true) { // 服务端只要获取到连接过来的客户端就可以和指定的客户端通信了 Socket socket = serverSocket.accept(); String ip = socket.getInetAddress().getHostAddress(); System.out.println(ip + "连接"); // 通过获取客户端的读取流对象读取客户端发来的数据 InputStream inputStream = socket.getInputStream(); BufferedReader bufIn = new BufferedReader(new InputStreamReader(inputStream)); //给客户端回馈数据. OutputStream outputStream = socket.getOutputStream(); PrintWriter out = new PrintWriter(outputStream,true);//自动刷新 String line = null; while((line=bufIn.readLine()) != null){ //读一行,注意行终止符 if("over".equals(line)){ //如果客户端发过来的是over,转换结束 break; } System.out.println(line);//打印客户端发来的信息 out.println(line.toUpperCase());//转成大写通过OutputStream发送回去 // out.flush(); } // 关闭客户端 socket.close(); } //如果不断的获取客户端,不用关闭服务端. // serverSocket.close(); } }TCP客户端
import java.io.*; import java.net.Socket; public class TCPClient { public static void main(String[] args) throws IOException { /* 通过TCP传输,将数据发送给服务器 1.建立tcp的客户端socket,明确服务端的地址和端口 2.如果通道建立成功就会出现socket,io流 客户端需要做的就是获取socket流中的输出流,将数据发送到目的地:服务端. 3.通过socket输出流将数据发送. 4.关闭资源 */ System.out.println("客户端启动"); // 建立tcp的客户端socket,明确服务端的地址和端口 Socket socket = new Socket("127.0.0.1",6666); //获取键盘输入流对象 BufferedReader keyin = new BufferedReader(new InputStreamReader(System.in)); // 如果通道建立成功就会出现socket,io流.客户端需要做的就是获取socket流中的输出流,将数据发送到目的地:服务端. OutputStream outputStream = socket.getOutputStream(); PrintWriter out = new PrintWriter(outputStream,true);//自动刷新 //读取服务端返回的数据,通过socket输入流对象 InputStream inputStream = socket.getInputStream(); BufferedReader bufIn = new BufferedReader(new InputStreamReader(inputStream)); // 通过socket输出流将数据发送. //发送数据 String line = null; while((line = keyin.readLine()) != null){ //读取一行,行终止符 out.println(line); // out.flush(); if("over".equals(line)){ break; } String upperText = bufIn.readLine(); System.out.println(upperText); //自动换行 } // 关闭资源 socket.close(); } }