Android学习———服务器、客户端、Scoket网络编程

目的

今天的学习关于面对网络而言的。众所周知。网络在如今的大环境下是不可逆的主流,而网络无外乎服务器,客户端,数据库等主要部分,今天实现了不同计算机的交互,进行聊天操作,使用 Java 实现一个简单的聊天程序, 实现服务器端接收到客户端发来的消息, 使用了java.net.socket包. 通过socket 实现 client — server 之间的通讯.。涉及的知识主要有多线程以及Scoket类使用。话不多说,Start!

运用知识

  • IP地址

  • 客户端简单实用

  • 多线程实现对聊

  • 使用继承IOException类

过程

  • 学习笔记

/**

  • 网络编程
  • 在两台不同的计算机之间实现数据传输
  •  1.qq聊天
    
  •  2.网易app  刷新界面
    
  •  3.打开浏览器  网页  www.baidu.com
    
  • 客户端:手机app 浏览器 桌面qq 用户使用的平台
  • 服务器端:存储、处理数据
  • URL:统一的资源定位
  • www.baidu.com: 域名 表示一台网络中的电脑
  •             ip地址  唯一标识某一台电脑   32位——>4部分  8字节
    
  •             172.20.10.15<-->www.baidu.com
    
  • DNS服务器 域名解析
  • IP地址唯一标识一台电脑
  • 端口号唯一标识电脑上正在运行的一个程序
  • 网络中数据传输 Socket类 客户端 ServerSocket 服务器端
    */
  • 直接步入主题,开始写/demo

要完成这个demo,实现服务器与客户端对话,首先要有客户端和服务器。对其的要求是,在其中一方的字符能实时显示在另外一方,同时可以实现交互。那么就要有服务器Server以及客户端Client

  • 客户端Client类代码:
class Client1{
    public static void main(String[] args) throws IOException {
        //连接服务器 获取socket
        Socket socket = new Socket("127.0.0.1",8080);

        //创建服务器端对应的输入流 用于接收服务器端发来的数据
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        System.out.println(br.readLine());

        //向服务器端发送文件(图片)
        //1.将文件写入到内存里
        String path = "C:\\Users\\myk的小老弟\\Desktop\\ps素材\\feker.jpg";
        FileInputStream fis = new FileInputStream(path);

        //2.创建字节流 outputStream
        BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
        byte[] buf = new byte[1024];
        int len = -1;
        while ((len = fis.read(buf)) != -1){
            bos.write(buf,0,len);
        }
        socket.shutdownOutput();
    }
}
  • 服务器类代码:
class Server1{
    public static void main(String[] args) throws IOException {
        //创建服务器端的ServerSoket
        ServerSocket ss = new ServerSocket(8080);

        //监听客户端连接
        //当有客户端来连接这个服务器 就可以得到对应的socket
        //当没有客户端来连接 服务器一直在这里等待
        Socket socket = ss.accept();

        //创建客户端对应的输出流 用于向这个客户端发送数据
        PrintStream ps = new PrintStream(socket.getOutputStream());
        ps.println("连接成功 可以发数据了!");

        BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
        String path = "C:\\Users\\myk的小老弟\\Desktop\\杂文档";
        FileOutputStream fos = new FileOutputStream(path);

        byte[] buf = new byte[1024];
        int len = -1;
        while((len = bis.read(buf)) != -1){
            fos.write(buf,0,len);
        }
    }
}
  • 效果如下

    1.运行服务器:

    2.运行客户端:
    image.png

总结

具体的话,服务器和客户端是分开电脑分别实现,只要地址以及端口正确就能实现交互。多人交互我还没理清楚,继续加油

你可能感兴趣的:(Android学习———服务器、客户端、Scoket网络编程)