服务端
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.nio.charset.StandardCharsets; /* * TCP通信的服务端 接受客户端的请求 ,读取客户端 ,给客户端回写数据 * java.net.serversocket * 构造方法: * serversocket(int port);绑定特定的服务器端套接字 * 服务器必须明确那个服务器端的套接字 * 使用accept 方法获取请求客户端对象socket * Socket accept ()监听并且接受套接字链接 * 步骤: * 1.指点serversocket特定的端口号 * 2.使用socket对象accept ,获取请求的客户端请求对象socket获取socket对象 * 3.使用socket中的实现方法getoutputStream ()获取网络字节输出流outputstream * 4.使用getoutputStream ()的writer,给服务器发送数据 * 5.使用socket 中的 getinputstream ()获取网络的inputstream * 6.使用回写数据的输入流 Inputstream的read方法 * 7.释放资源 * * */ public class Server { public static void main(String[] args) throws IOException { ServerSocket serversocket = new ServerSocket(8888); Socket socket = serversocket.accept(); InputStream getputStream = socket.getInputStream(); byte[] bytes=new byte[1024]; int i = getputStream.read(bytes); System.out.println(new String(bytes,0,i)); OutputStream outputStream = socket.getOutputStream(); outputStream.write("谢谢客户端".getBytes(StandardCharsets.UTF_8)); socket.close(); serversocket.close(); } }
客户端:
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.nio.charset.StandardCharsets; /* * 构造方法 socket (string host ,int port ) * 参数:string host: ip 地址 * int port 端口号 实现步骤: * 创建一个socket对象,构造时传递参数 ip 和端口号 * 使用socket中的实现方法getoutputStream ()获取网络字节输出流outputstream * 使用getoutputStream ()的writer,给服务器发送数据 * 使用socket 中的 getinputstream ()获取网络的inputstream * 使用回写数据的输入流 Inputstream的read方法 * 释放资源 * * * * */ public class Client { public static void main(String[] args) throws IOException { //1.创建一个套接字socket 构造服务器地址和端口 Socket socket = new Socket("127.0.0.1",8888); //2.使用socket对象中 getoutputstream 对象 OutputStream os = socket.getOutputStream(); //3.使用网络字节输出output中的write,给服务器发送数据 os.write("你好服务器".getBytes(StandardCharsets.UTF_8)); InputStream inputStream = socket.getInputStream(); byte[]bt=new byte[1024]; int len = inputStream.read(bt); System.out.println(new String(bt,0,len)); socket.close(); } }