zoukankan      html  css  js  c++  java
  • Socket编程简单示例

    服务器端

    public class TcpServer

    {

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

        {

           ServerSocket ss = new ServerSocket(5000);

          

           while(true)

           {

               Socket socket = ss.accept();

              

               new ServerInputThread(socket).start();

               new ServerOutputThread(socket).start();

           }

        }

    }

     

    客户端

    public class TcpClient

    {

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

        {

           Socket socket = new Socket("127.0.0.1", 5000);

     

           new ClientInputThread(socket).start();

           new ClientOutputThread(socket).start();

        }

    }

     

    服务器端读数据

    public class ServerInputThread extends Thread

    {

        private Socket socket;

     

        public ServerInputThread(Socket socket)

        {

           this.socket = socket;

        }

     

        @Override

        public void run()

        {

           try

           {

               InputStream is = socket.getInputStream();

     

               while (true)

               {

                  byte[] buffer = new byte[1024];

     

                  int len = is.read(buffer);

     

                  String str = new String(buffer, 0, len);

     

                  System.out.println(str);

               }

           }

           catch (IOException e)

           {

               // TODO Auto-generated catch block

               e.printStackTrace();

           }

        }

    }

     

    服务器端写数据

    public class ServerOutputThread extends Thread

    {

        private Socket socket;

     

        public ServerOutputThread(Socket socket)

        {

           this.socket = socket;

        }

     

        @Override

        public void run()

        {

           try

           {

               OutputStream os = socket.getOutputStream();

     

               while (true)

               {

                  BufferedReader br = new BufferedReader(new InputStreamReader(

                         System.in));

                  String line = br.readLine();

                  os.write(line.getBytes());

               }

           }

           catch (IOException e)

           {

               // TODO Auto-generated catch block

               e.printStackTrace();

           }

        }

    }

     

    客户端读数据

    public class ClientInputThread extends Thread

    {

        private Socket socket;

     

        public ClientInputThread(Socket socket)

        {

           this.socket = socket;

        }

     

        @Override

        public void run()

        {

           try

           {

               InputStream is = socket.getInputStream();

     

               while (true)

               {

                  byte[] buffer = new byte[1024];

     

                  int len = is.read(buffer);

     

                  String str = new String(buffer, 0, len);

     

                  System.out.println(str);

               }

           }

           catch (IOException e)

           {

               // TODO Auto-generated catch block

               e.printStackTrace();

           }

        }

    }

     

    客户端写数据

    public class ClientOutputThread extends Thread

    {

        private Socket socket;

     

        public ClientOutputThread(Socket socket)

        {

           this.socket = socket;

        }

     

        @Override

        public void run()

        {

           try

           {

               OutputStream os = socket.getOutputStream();

     

               while (true)

               {

                  BufferedReader br = new BufferedReader(new InputStreamReader(

                         System.in));

                  String line = br.readLine();

                  os.write(line.getBytes());

               }

           }

           catch (IOException e)

           {

               // TODO Auto-generated catch block

               e.printStackTrace();

           }

        }

    }

     

     

  • 相关阅读:
    HDU2059(龟兔赛跑)
    pat 1012 The Best Rank
    pat 1010 Radix
    pat 1007 Maximum Subsequence Sum
    pat 1005 Sign In and Sign Out
    pat 1005 Spell It Right
    pat 1004 Counting Leaves
    1003 Emergency
    第7章 输入/输出系统
    第六章 总线
  • 原文地址:https://www.cnblogs.com/zfc2201/p/2143625.html
Copyright © 2011-2022 走看看