JavaSocket小Demo

这是一个使用java ServerSocket服务端 和 Socket客户端写的一个客户端发送消息,服务端接收消息的Demo

写在前面,首先需知道服务端的ip地址和端口号,这里我们就是拿本机ip地址既作为服务端也作为客户端,区别它们在于端口的不同,服务端需要设置固定端口,客户端需要使用服务端的ip和服务器设置的固定端口

开发客户端使用Socket

分为四个步骤

 - 1创建Socket连接,并指定服务器ip和服务器端口
 - 2从建立的Socket哪里获取输入输出流
 - 3处理输入输出流
 - 4关闭连接

客户端Socket代码如下

  public static void main(String[] args) throws Exception{
        //Socket客户端有四个步骤
        //第一步创建socket,指定服务器ip和服务器端口
        System.out.println("正在发起和服务器的连接");
        //这里的ip地址可以设置为你自己的IP地址
        //端口可以随便设置,但一定要和下面服务端的端口一致,而且端口不能被占用
        Socket socket = new Socket("10.9.21.233",9999);
        //第二步获取输入输出流
        //这里只获取了输出流
        OutputStream os = socket.getOutputStream();
        //第三步处理输入输出流
        //只发送消息给服务器,字符参数需转为byte字节参数发送
        os.write("对服务器说:hello".getBytes());
        //必须刷新
        os.flush();
        //第四步关闭资源
        //发送完成就关闭
        os.close();
        socket.close();
        System.out.println("退出");
    }

开发服务端使用ServerSocket

分为个步骤,比客户端多一个步骤

 - 1创建ServerSocket连接,并指定服务器端口,这个端口就是ServerSocket用来监听的端口
 - 2监听该端口,获取与客户端Socket的连接
 - 3从监听到的Socket哪里获取输入输出流
 - 3处理输入输出流
 - 4关闭连接

客户端ServerSocket代码如下

 public static void main(String[] args) throws Exception {
        //ServerSocket服务器端有五个步骤
        //创建ServerSocket连接,并指定服务器端口,这个端口就是ServerSocket用来监听的端口
        System.out.println("服务器启动成功:");
        ServerSocket listener = new ServerSocket(9999);
        //第二步监听该端口,获取与客户端Socket的连接
        Socket clientSocket = listener.accept();
        //第三步获取输入输入流
        InputStream is = clientSocket.getInputStream();
        //第四步处理输入输出流
        //这里建立了一个字节数组,用做缓冲区来接收客户端Socket发过来的字节信息
        byte[] buf = new byte[1024];
        //用于判断是否读取完毕和保存读取的数据存到了buf缓冲的哪一个位置了,从0开始存
        int len=-1;
        //这里使用循环读取,发送过来的字节信息,不等于-1代表还没有读取完毕
        while ((len=is.read(buf))!=-1){
            //从0位置开始读取,到len位置结束
            // 因为buf数组中有效的数据就是从0到len长度这个区间的数据
            String str = new String(buf,0,len);
            System.out.println("客户端说:"+str);
        }
    }

上述就是最基础的ServerSocket和Socket之间的通信
记得首先启动服务端,然后在启动客户端,ip地址和端口号不要写错了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章