java实现内网通信

复制代码
 1 package newTest;
 2 
 3 import java.io.OutputStream;
 4 import java.net.ServerSocket;
 5 import java.net.Socket;
 6 
 7 /**
 8  * @author liuwenlong
 9  * @create 2020-08-10 14:29:40
10  */
11 @SuppressWarnings("all")
12 public class LwlClient {
13     public static void main(String[] args) {
14         if (args.length != 2) {
15             System.out.println("usage:java TcpServer port[5000~9999]");
16             return;
17         }
18         try {
19             Socket socket = new Socket(args[0], Integer.parseInt(args[1]));
20             OutputStream out = socket.getOutputStream();
21             byte b[] = new byte[300];
22             while (true) {
23                 System.out.print("mymsg>");
24                 int len = System.in.read(b);
25                 if (len < 1) continue;
26 
27                 if (b[len - 2] == 13 && b[len - 1] == 10) {
28                     len = len - 2;
29                 } else {
30                     len = len - 1;
31                 }
32                 if (len == 0) continue;
33                 out.write(b, 0, len);
34             }
35         } catch (Exception e) {
36             System.err.println(e.getMessage());
37         }
38     }
39 }
复制代码
复制代码
 1 package newTest;
 2 
 3 import java.io.InputStream;
 4 import java.net.ServerSocket;
 5 import java.net.Socket;
 6 
 7 /**
 8  * @author liuwenlong
 9  * @create 2020-08-10 13:38:07
10  */
11 @SuppressWarnings("all")
12 class ServerThread extends Thread {
13     Socket socket;
14 
15     public ServerThread() {
16     }
17 
18     public ServerThread(Socket socket) {
19         this.socket = socket;
20     }
21 
22     @Override
23     public void run() {
24         try {
25             byte b[] = new byte[300];
26             InputStream in = socket.getInputStream();
27             while (true) {
28                 int len = in.read(b);
29                 System.out.println(new String(b, 0, len));
30             }
31 
32         } catch (Exception e) {
33             System.err.println(e.getMessage());
34         }
35     }
36 }
37 
38 
39 public class TcpServer {
40     public static void main(String[] args) {
41         if (args.length != 1) {
42             System.out.println("usage:java TcpServer port[5000~9999]");
43             System.exit(0);
44         }
45 
46         try {
47             ServerSocket server = new ServerSocket(Integer.parseInt(args[0]));
48             while (true) {
49                 Socket socket = server.accept();
50                 new ServerThread(socket).start();
51             }
52         } catch (Exception e) {
53             System.err.println(e.getMessage());
54         }
55     }
56 }
复制代码

 

 

 

 

 

posted @   勤快的懒羊羊  阅读(612)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示