Java.NET小例子

Posted fusiji

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java.NET小例子相关的知识,希望对你有一定的参考价值。

--Client.java

public class Client

 

    private static String ip = null;

    private static String websiteName = null;

    private static int port = 10000;

    private static int time = 50000;

 

    public static void main(String[] args) throws Exception

 

        /**

         * 解析XML配置文件

         */

 

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

        DocumentBuilder builder = factory.newDocumentBuilder();

        Document document = builder.parse(new File("/Work Files/Java/SocketNetworkWithXML/src/socketNetworkWithXML/Configure.xml"));

        XML xml = new XML(document);

        Element root = xml.getRoot();

        NodeList nodeList = xml.getChild(root);

        xml.getItem(nodeList);

        ip = XML.ip;

        websiteName = XML.websiteName;

        port = XML.port;

        time = XML.time;

 

        /**

         * 判断远程地址提供类型(ip/site name)

         */

 

        if(ip == null && websiteName == null)

            System.err.println("No Server Completed!");

            System.exit(0);

       

        else if(ip == null && websiteName != null)

            try

                InetAddress aInetAddress = InetAddress.getByName(websiteName);

                InetSocketAddress address = new InetSocketAddress(aInetAddress, port);

                Socket socket = new Socket();

                socket.connect(address, time);

                ClientHandler clientHandler = new ClientHandler();

 

                OutputStream outputStream = socket.getOutputStream();

                PrintWriter printWriter = new PrintWriter(outputStream,true);

                Scanner scanner = new Scanner(System.in);

 

                InputStream inputStream = socket.getInputStream();

                Scanner scanner2 = new Scanner(inputStream);

 

                String string = null;

                while(true)

                    clientHandler.send(scanner,printWriter);

                    string = clientHandler.receive(scanner2);

                    if(string.equals("Bye!")) break;

               

                socket.close();

           

            catch(Exception exception)

                System.err.println("Server Not Found!");

           

       

        else

            try

                InetSocketAddress address = new InetSocketAddress(ip, port);

                Socket socket = new Socket();

                socket.connect(address, time);

                ClientHandler clientHandler = new ClientHandler();

 

                OutputStream outputStream = socket.getOutputStream();

                PrintWriter printWriter = new PrintWriter(outputStream,true);

                Scanner scanner = new Scanner(System.in);

 

                InputStream inputStream = socket.getInputStream();

                Scanner scanner2 = new Scanner(inputStream);

 

                String string = null;

                while(true)

                    clientHandler.send(scanner,printWriter);

                    string = clientHandler.receive(scanner2);

                    if(string.equals("Bye!")) break;

               

                socket.close();

           

            catch (Exception exception)

                System.err.println("Server Not Found!");

           

       

   

 

--ClientHandler.java

public class ClientHandler

 

    private String string = null;

 

    public void send(Scanner scanner, PrintWriter printWriter) throws Exception

        string = scanner.nextLine();

        printWriter.println(string);

   

 

    public String receive(Scanner scanner2) throws Exception

        string = scanner2.nextLine();

        System.out.println(string);

        return string;

   

 

--Server.java

public class Server

 

    private static int port = 10000;

 

    public static void main(String[] args) throws Exception

        try

            ServerSocket serverSocket = new ServerSocket(port);

            ServerHandler serverHandler = new ServerHandler(serverSocket);

            try

                while(true) serverHandler.transform();

           

            catch(Exception e)

                System.err.println("Can Not Create Socket From Port:"+port+".!");

                try

                    serverHandler.close();

               

                catch(Exception exception)

                    System.err.println("ServerSocket has already closed!");

               

                finally

                    System.exit(0);

               

           

       

        catch(Exception exception)

            System.err.println("Port was used by other applications!");

            System.exit(0);

       

   

 

--ServerHandler.java

public class ServerHandler extends Socket implements Runnable

 

    private ServerSocket serverSocket;

    private Socket socket;

 

    public ServerHandler(ServerSocket serverSocket)

        this.serverSocket = serverSocket;

   

 

    public ServerHandler(Socket socket)

        this.socket = socket;

   

 

    public void transform() throws Exception

        Socket socket = serverSocket.accept();

        Runnable runnable = new ServerHandler(socket);

        Thread thread = new Thread(runnable);

        thread.start();

   

 

    public Scanner receive() throws Exception

        InputStream inputStream = socket.getInputStream();

        Scanner scanner = new Scanner(inputStream);

        return scanner;

   

 

    public PrintWriter send() throws Exception

        OutputStream outputStream = socket.getOutputStream();

        PrintWriter printWriter = new PrintWriter(outputStream,true);

        return printWriter;

   

 

    public void run()

        try

            Scanner scanner = receive();

            PrintWriter printWriter = send();

            String string = null;

            while(scanner.hasNextLine())

                string = scanner.nextLine();

                System.out.println(string);

                if(string.equalsIgnoreCase("quit") || string.equalsIgnoreCase("exit"))

                    printWriter.println("Bye!");

                    break;

               

                else

                    printWriter.println("return: "+string);

               

           

            scanner.close();

            printWriter.close();

            socket.close();

        

        catch (Exception e)

            e.printStackTrace();

       

   

 

--XML.java

public class XML

 

    private Document document;

 

    public static String ip;

    public static String websiteName;

    public static int port;

    public static int time;

 

    public XML(Document document)

        this.document = document;

   

 

    public Element getRoot()

        Element root = document.getDocumentElement();

        return root;

   

 

    public NodeList getChild(Element root)

        NodeList nodeList = root.getChildNodes();

        return nodeList;

   

 

    public void getItem(NodeList nodeList)

        for(int i=0;i<nodeList.getLength();i++)

            Node node = nodeList.item(i);

            if(node instanceof Element)

                Element element = (Element) node;

                Text text = (Text) element.getFirstChild();

                String string = text.getData().trim();

                if(element.getTagName().equals("ip")) ip = string;

                else if(element.getTagName().equals("websiteName")) websiteName = string;

                else if(element.getTagName().equals("port")) port = Integer.parseInt(string);

                else if(element.getTagName().equals("time")) time = Integer.parseInt(string);

                else System.err.println("Unknown tag.");

           

       

   

 

--Configure.xml

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <ip>127.0.0.1</ip>

    <websiteName>null</websiteName>

    <port>10000</port>

    <time>50000</time>

</configuration>

 

以上是关于Java.NET小例子的主要内容,如果未能解决你的问题,请参考以下文章

spring的一个小例子--解析前面的小例子

JSP小例子——实现用户登录小例子(不涉及DB操作)

spring小例子-springMVC+mybits整合的小例子

IbLpJnJErT分页查询的小例子

layui.form小例子

python 基础 列表 小例子