1. 程式人生 > >跨網絡主機的互操作/遠程控制/遠程桌面的概念設計(二)

跨網絡主機的互操作/遠程控制/遠程桌面的概念設計(二)

ioe buffer href 網絡 pin imp test lin sock

前一篇(跨網絡主機的互操作/遠程控制/遠程桌面的概念設計(一))就是概念設計了一下,覺得可行,這次用2個USB網卡聯通以後,實際測試了下,還真的可行。

不過仔細想了想,這個還是有很大風險的,畢竟內網和互聯網電腦組成了一個局域網,如果有局域網病毒入侵到任一臺電腦上,另外一臺也是會中毒的。

一、物理連接

使用兩個USB網卡,分別插到內網主機和互聯網主機上,然後用網線連接起來。分別設置兩個USB網卡的IP地址為 192.168..0.1 和 192.168.0.2。我測試是一個 Win7 一個Win10系統,不用配置什麽躍點和靜態路由,就能三個網絡方向可用。兩臺主機不僅原網絡正常,彼此間也能直接ping通,說明win7和win10的網卡協議都挺智能,會自動路由,給IP包找指定的網關。

二、Java Socket測試

服務端代碼:

 1 package com.wfg;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.IOException;
 5 import java.io.InputStreamReader;
 6 import java.io.PrintWriter;
 7 import java.net.ServerSocket;
 8 import java.net.Socket;
 9 
10 public class TestS {
11     public static
void main(String[] args) throws IOException { 12 13 ServerSocket server = new ServerSocket(9899); 14 System.out.println("The Server is start: " + server); 15 while (true) { 16 Socket client = server.accept(); 17 System.out.println("Accept the Client: " + client);
18 BufferedReader in = new BufferedReader(new InputStreamReader(client 19 .getInputStream())); 20 PrintWriter out = new PrintWriter(client.getOutputStream()); 21 while (true) { 22 23 String str = in.readLine(); 24 System.out.println(str); 25 out.println("has receive."); 26 out.flush(); 27 if (str.equals("end")) 28 break; 29 30 } 31 32 client.close(); 33 34 } 35 36 } 37 }

客戶端代碼:

package com.wfg;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;

public class TestC {
    static Socket server;

    public static void main(String[] args) throws Exception {
        server = new Socket("192.168.0.1", 9899);
        BufferedReader in = new BufferedReader(new InputStreamReader(server
                .getInputStream()));
        PrintWriter out = new PrintWriter(server.getOutputStream());
        BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));
        while (true) {
            String str = wt.readLine();
            out.println(str);
            out.flush();
            if (str.equals("end")) {
                break;
            }
        }
        server.close();
    }

}

啰嗦一句,如何運行class文件:使用 java -cp [class文件路徑] com.wfg.TestS

經個人測試,客戶端輸入信息,服務器端都能正常的回顯。

跨網絡主機的互操作/遠程控制/遠程桌面的概念設計(二)