基于 TCP(面向连接)的 socket 编程
例子:一个客户端作 一个服务端
客户端发送数据至服务端 服务端接收完毕后反馈客户端
ps:不同于 UDP 协议 首先需要启动服务端才能够启动服务端 否则抛出 ConnectException 异常
客户端思路
1、创建 socket 对象
2、获取输入流
3、获取 socket 读取流
4、关闭服务
public class TCPClientDemo { public static void main(String []args) throws UnknownHostException, IOException{ System.out.println("Client start!!"); //1.创建客户端 Socket socket = new Socket("192.168.219.1",10003); //2.获取输出流 OutputStream out = socket.getOutputStream(); String str = "hello world?"; out.write(str.getBytes()); //3.获取socket的读取流。读取服务端发回的数据 InputStream in = socket.getInputStream(); byte [] buf = new byte[1024]; int len = in.read(buf); String string = new String(buf,0,len); System.out.println(string); socket.close(); } }
服务端思路:
1、创建 socket 对象
2、获取客户端对象
3、获取读取流(InputStream)
4、反馈
5、关闭服务
public static void main(String []args) throws UnknownHostException, IOException{ System.out.println("Server Start!!"); ServerSocket serverSocket = new ServerSocket(10003); Socket socket = serverSocket.accept(); //获取客户端地址 String ip = socket.getInetAddress().getHostAddress(); System.out.println(ip+"...connected"); InputStream in = socket.getInputStream(); byte[] buf =new byte[1024]; int len =in.read(buf); String str =new String(buf,0,len); System.out.println(str); //返回数据给客户端 OutputStream out =socket.getOutputStream(); out.write("hello world!!".getBytes()); socket.close(); serverSocket.close(); } }
结果
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于