socket通信demo
Server.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | package com.hmb; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { int port = 8917 ; try { System.out.println( "server start" ); ServerSocket serverSocket = new ServerSocket(port); Socket socket = serverSocket.accept(); Reader reader = new InputStreamReader(socket.getInputStream()); char [] chars = new char [ 1024 ]; int len; while ((len = reader.read(chars)) != - 1 ) { System.out.println( new String(chars, 0 , len)); } reader.close(); socket.close(); serverSocket.close(); } catch (IOException e) { throw new RuntimeException(e); } } } |
Client.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package com.hmb; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.net.Socket; public class Client { public static void main(String[] args) { String ip = "127.0.0.1" ; int port = 8917 ; try { System.out.println( "client start" ); Socket socket = new Socket(ip, port); Writer writer = new OutputStreamWriter(socket.getOutputStream()); writer.write( "hello, I am client" ); writer.flush(); writer.close(); socket.close(); } catch (IOException e) { throw new RuntimeException(e); } } } |
先运行Server.java的main方法,再运行Client.java的main方法,此时server的终端就会打印收到的信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?