java中TCP通信

---------------------------------------java中TCP通信-------------------------------------------

   

示例代码: 

/**

 * TCP服务器

 * @author李昆鹏

 *

 */

public  class TCPServer {

 

    public  static  void main(String[] args) {

       

        //创建服务器的服务套接字

        ServerSocket ss = null;

        Socket s =null;

        BufferedReader br = null;

        try {

           ss = new  ServerSocket(10011);

           //接收到了一个连接的请求,返回以socket对象

           //等待有客服端来建立连接

           s = ss.accept();

           //获得输入输出流的对象

           OutputStream os = s.getOutputStream();

           InputStream in = s.getInputStream();

           br = new  BufferedReader(new InputStreamReader(in));

           InetAddress ia = s.getInetAddress();

           while (true) {

               //读取一行

               String line = br.readLine();

               System.out.println(line);

               if("exit".equals(line)) {

                   System.out.println("程序已经退出");

                   break;

               }

              

               //获得客户端的IP地址

               System.out.println(ia.getHostAddress() + "发送了:" + line);              

           }       

        } catch (IOException e) {

           e.printStackTrace();

        } finally {

           //先关闭流

               try {

                   if(br != null)

                       br.close();

                   if(s != null)

                       s.close();

                   if(ss != null)

                       ss.close();

               } catch (IOException e) {

                   e.printStackTrace();

               }

        }    

    }   

}


------------------------------------------------------------

public  class TCPClient {

 

    public  static  void main(String[] args) {

       

        //创建套接字对象,去请求服务器的ServerSocket

        Socket s = null;

        BufferedWriter writer = null;

        BufferedReader br = null;

        try {

           s = new Socket("192.168.1.104",10011);

           //获得输出流

           OutputStream out = s.getOutputStream();

           //获得从控制台输入的流对象

           br = new  BufferedReader(new InputStreamReader(System.in));

           writer = new BufferedWriter(new OutputStreamWriter(out));

           while(true) {

               System.out.println("请输入:");

               String line = br.readLine();

               writer.write(line);

               writer.newLine();

               writer.flush();

               //在退出程序之前一定要先换行再清空缓冲区

               if("exit".equals(line)) {

                   System.out.println("程序已经退出");

                   break;

               }

           }          

        } catch (Exception e) {

           e.printStackTrace();

        } finally {    

               try {

                   if(writer != null)

                       writer.close();

                   if(s != null)

                       s.close();

               } catch (IOException e) {

                   e.printStackTrace();

               }

        }       

    }   

}

  

猜你喜欢

转载自blog.csdn.net/weixin_41547486/article/details/80030090