zoukankan      html  css  js  c++  java
  • ServerSocket和Socket

    前言

          用ServerSocket和Socket做了个Server、Client通信的demo,以及学习下在这个demo过程中用到java.net、java.io包下几个常用的类。

    Server

    import java.net.*;
    import java.io.*;
    
    public class HttpServer{
        
        public static void main(String[] args){
            new HttpServer().start();
        }
        
        private ServerSocket serversocket=null;
        
        public HttpServer(){
            try{
                serversocket=new ServerSocket(5000);//监听客户端端口5000的socket请求
                System.out.println("服务器启动");
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    
        public void start(){
            Socket socket=null;
            while(true){
                try{
    
                    socket=serversocket.accept(); //接受客户端请求socket
                    System.out.println("address:"+socket.getInetAddress()+":"+socket.getLocalPort());
    
                    
                    OutputStream os =socket.getOutputStream();
                    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
                    //向客户端发送一条消息
                    bw.write("测试服务器通信
    ");
                    bw.flush();
    
                }catch(IOException e){
                    e.printStackTrace();
                    System.out.println("连接断开");
                }finally{
                    try{
                        if(socket !=null){
                            socket.close();
                        }
                    }catch(IOException e){
                        
                    }
                }
            }
        }
    }

    Client

    import java.net.*;
    import java.io.*;
    
    public class Client{
        
        public static void main(String[] args){
            Socket socket=null;
            try{
                socket =new Socket("127.0.0.1",5000);
                
                
                InputStream is =socket.getInputStream();
                InputStreamReader isr=new InputStreamReader(is);
                BufferedReader br =new BufferedReader (isr);
                String mess=br.readLine();
                
                System.out.println("mess:"+mess);
            }catch(IOException e){
                e.printStackTrace();
            }finally{
                try{
                    if(socket !=null){
                        socket.close();
                    }
                }catch(IOException e){
                    
                }
            }
            
        }
        
    }

     总结

         java.net包内几个常用的类: 

             ServerSocket、

             Socket、

             OutputStream、InputStream、

         InputStreamReader、OutputStreamWriter、

         BufferedReader、BufferedWriter、 

             InetAddress、

            

             

            

  • 相关阅读:
    史上最全的网银转账测试分析与设计
    【面试题】你是测试工程师,如何保证软件的质量?
    小白成长建议--小白如何提问
    [感悟]性能测试测什么
    通过一个简单的数据库操作类了解PHP链式操作的实现
    PHP魔术方法小结.md
    谈PHP中信息加密技术
    PHP输入流php://input [转]
    【PHPsocket编程专题(实战篇③)】构建基于socket的HTTP请求类
    从一次面试经历谈PHP的普通传值与引用传值以及unset
  • 原文地址:https://www.cnblogs.com/sword-successful/p/6672940.html
Copyright © 2011-2022 走看看