zoukankan      html  css  js  c++  java
  • 一个简单的JAVA C/S多线程应用

     

     
    import java.net.*;
    import java.io.*;
    public class simpleServer
    {
    private static ServerSocket serverSocket;
    private static listenClient listen;
    public static void main(String[] args) throws Exception
    {
    int port;
    if(args.length==0)
    {
    System.out.println('Usage:java simpleServer [port]');
    System.exit(1);
    }
    port=Integer.parseInt(args[0]);
    startServer(port);
    }
    public static void startServer(int port)throws Exception
    {
    try
    {
    serverSocket=new ServerSocket(port);
    Thread thread=new Thread(new listenClient(serverSocket));
    thread.start();
    }
    catch (IOException ex)
    {
    ex.printStackTrace();
    }
    }
    }
    class listenClient implements Runnable
    {
    private ServerSocket serverSocket;
    private Socket clientSocket;
    DataInputStream in;
    DataOutputStream out;
    public listenClient(ServerSocket ser verSocket)throws Exception
    {
    this.serverSocket=serverSocket;
    }
    public void run()
    {
    try
    {
    while(true)
    {
    clientSocket=serverSocket.accept();
    System.out.println('Connection from '+clientSocket.getInetAddress().getHostAddress());
    in=new DataInputStream(clientSocket.getInputStream());
    out=new DataOutputStream(clientSocket.getOutputStream());
    String lineSep=System.getProperty('line.separator');//行分隔符,即回车换行
    InetAddress addr=serverSocket.getInetAddress().getLocalHost();
    String outData='Server Information: '+lineSep+' Local Host: '+serverSocket.getInetAddress().getLocalHost()+lineSep+' port :'+serverSocket.getLocalPort();
    byte[] outByte=outData.getBytes();
    out.write(outByte,0,outByte.length);
    }
    }
    catch (Exception ex)
    {
    ex.printStackTrace();
    }
    }
    };
    import java.net.*;
    import java.io.*;
    public class simpleClient
    {
    private staticSocket socket;
    public static void main(String[] args)throws Exception
    {
    String host;
    int port;
    if(args.length <2)
    {
    System.out.println('Usage:java simpleClient [remote IP/Host] [port]');
    System.exit(1);
    }
    host=args[0];
    port=Integer.parseInt(args[1]);
    connectServer(host,port);
    }
    public static void connectServer(String host,int port)
    {
    try
    {
    socket=new Socket(InetAddress.getByName(host),port);
    DataInputStream in=new DataInputStream(socket.getInputStream());
    DataOutputStream out=new DataOutputStream(socket.getOutputStream());
    byte[] inByte=new byte[1024];
    in.read(inByte);
    String response=new String(inByte,0,inByte.length);
    System.out.println('Message from server: ');
    System.out.println(response.trim());
    }
    catch (UnknownHostException e)
    {
    e.printStackTrace();
    }
    catch(IOException ex)
    {
    ex.printStackTrace();
    }
    finally
    {
    try
    {
    socket.close();
    }
    catch (IOException e)
    {
    e.printStackTrace();
    }
    }
    }
    }

  • 相关阅读:
    JavaWeb开发小结
    第一个Maven案例Hello Maven
    数据字典 dba_free_space及相对文件号RELATIVE_FNO 小结
    执行计划
    五分钟搞死一台服务器
    RAC 移动 OCR
    使用DBMS_STATS来收集统计信息【转】
    关于Freelists和Freelist Groups的研究【转】
    [转]Oracle中INITRANS和MAXTRANS参数
    linux套件安装过程中configure,make,make install的作用
  • 原文地址:https://www.cnblogs.com/Huanghaihui/p/6134720.html
Copyright © 2011-2022 走看看