精华内容
下载资源
问答
  • JAVA课程的实验,关于如何读取服务器端的窗口,在elipse环境下进行
  • JAVA读取服务器端文件一、实验要求创建一个URL对象,然后让URL对象返回输入流,通过该输入流读取URL所包含的资源文件。二、实验内容1、开机后,创建目录C:\Users\lenovo\eclipse-workspace。把这个目录作为我们的...

    JAVA读取服务器端文件

    一、实验要求

    创建一个URL对象,然后让URL对象返回输入流,通过该输入流读取URL所包含的资源文件。

    二、实验内容

    1、开机后,创建目录C:\Users\lenovo\eclipse-workspace。把这个目录作为我们的工作目录;

    2、打开eclipse软件,进入工作空间,创建名为JAVA的Java Project。接着,在这个项目下的src文件夹里创建名为实验1的包;

    3、右击包,创建相关类并输入代码如下:

    package 实验1;

    import java.awt.*;

    import java.awt.event.*;

    import java.net.*;

    import java.io.*;

    import javax.swing.*;

    public class ReadURLSource {

    public static void main(String args[]) {

    new NetWin();

    }

    }

    class NetWin extends JFrame implements ActionListener,Runnable {

    JButton button;

    URL url;

    JTextField inputURLText; //输入URL

    JTextArea area;

    byte b[]=new byte[118];

    Thread thread;

    NetWin() {

    inputURLText=new JTextField(20);

    area=new JTextArea(12,12);

    button=new JButton("确定");

    button.addActionListener(this);

    thread=new Thread(this);

    JPanel p=new JPanel();

    p.add(new JLabel("输入网址:"));

    p.add(inputURLText);

    p.add(button);

    add(area,BorderLayout.CENTER);

    add(p,BorderLayout.NORTH);

    setBounds(60,60,560,300);

    setVisible(true);

    validate();

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    public void actionPerformed(ActionEvent e) {

    if(!(thread.isAlive()))

    thread=new Thread(this);

    try{ thread.start();

    }

    catch(Exception ee) {

    inputURLText.setText("我正在读取"+url);

    }

    }

    public void run() {

    try { int n=-1;

    area.setText(null);

    String name=inputURLText.getText().trim();

    url=new URL(name); //使用字符串name创建url对象

    String hostName =url.getHost();//【代码2】 //url调用getHost()

    int urlPortNumber= url.getPort();

    String fileName=url.getFile();

    InputStream in = url.openStream();//【代码3】 //url调用方法返回一个输入流

    area.append("\n主机:"+hostName+"端口:"+urlPortNumber+

    "包含的文件名字:"+fileName);

    area.append("\n文件的内容如下:");

    while((n=in.read(b))!=-1) {

    String s=new String(b,0,n);

    area.append(s);

    }

    }

    catch(MalformedURLException e1) {

    inputURLText.setText(""+e1);

    return;

    }

    catch(IOException e1) {

    inputURLText.setText(""+e1);

    return;

    }

    }

    }

    4、运行程序

    48c7ed6592a56147777730e7757c8a1a.png

    三、遇到问题

    做该题时,输入书中的网址出现错误,后来明白需要建立自己的IIS站点,操作步骤如下:

    1、控制面板→程序→启动或关闭Windows功能→Internet Information Services→勾选所有FTP服务;勾选万维网服务的应用程序开发功能中的.NET Extensibility 4.8、ASP.NET 4.8、ISAPI扩展、SAPI筛选器

    2、控制面板→系统和安全→管理工具→Internet Information Services (IIS管理)→添加网站

    网站名称随意取;物理路径为你要读取的文档所放地;IP地址可不填;端口最好不填8080;主机名看需求填写

    3、配置默认文档

    4、启动目录浏览功能

    5、右击网站→编辑权限→安全选项卡→添加一个Everyone用户→勾选完全控制

    6、在网页中输入localhost:端口(自己填的)或者本地ipv4地址:端口(自己填的)

    重新运行Java程序,输入相应内容,终于成功!

    本文地址:https://blog.csdn.net/z2019jiayou/article/details/112254466

    希望与广大网友互动??

    点此进行留言吧!

    展开全文
  • JAVA读取服务器端文件

    2021-01-05 22:35:17
    JAVA读取服务器端文件 一、实验要求 创建一个URL对象,然后让URL对象返回输入流,通过该输入流读取URL所包含的资源文件。 二、实验内容 1、开机后,创建目录C:\Users\lenovo\eclipse-workspace。把这个目录作为我们...

    JAVA读取服务器端文件

    一、实验要求

    创建一个URL对象,然后让URL对象返回输入流,通过该输入流读取URL所包含的资源文件。

    二、实验内容

    1、开机后,创建目录C:\Users\lenovo\eclipse-workspace。把这个目录作为我们的工作目录;

    2、打开eclipse软件,进入工作空间,创建名为JAVA的Java Project。接着,在这个项目下的src文件夹里创建名为实验1的包;

    3、右击包,创建相关类并输入代码如下:

    package 实验1;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import javax.swing.*;
    public class ReadURLSource {
       public static void main(String args[]) {
          new NetWin();
       }
    }
    class NetWin extends JFrame implements ActionListener,Runnable {
       JButton button;
       URL url;
       JTextField inputURLText; //输入URL
       JTextArea area; 
       byte b[]=new byte[118];
       Thread thread;
       NetWin() {
          inputURLText=new JTextField(20);
          area=new JTextArea(12,12);
          button=new JButton("确定");
          button.addActionListener(this);
          thread=new Thread(this);
          JPanel p=new JPanel();
          p.add(new JLabel("输入网址:"));
          p.add(inputURLText); 
          p.add(button);
          add(area,BorderLayout.CENTER);
          add(p,BorderLayout.NORTH);
          setBounds(60,60,560,300);
          setVisible(true);
          validate();
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       }
       public void actionPerformed(ActionEvent e) {
          if(!(thread.isAlive())) 
             thread=new Thread(this);
          try{  thread.start();
          }
          catch(Exception ee) {
               inputURLText.setText("我正在读取"+url);
          }
       }
       public void run() {
          try { int n=-1;
                area.setText(null);
                String name=inputURLText.getText().trim();
                url=new URL(name); //使用字符串name创建url对象
                String hostName =url.getHost();//【代码2】 //url调用getHost()
                int urlPortNumber= url.getPort();  
                String fileName=url.getFile();
                InputStream in = url.openStream();//【代码3】 //url调用方法返回一个输入流
                area.append("\n主机:"+hostName+"端口:"+urlPortNumber+
                           "包含的文件名字:"+fileName);
                area.append("\n文件的内容如下:");
                while((n=in.read(b))!=-1) {
                    String s=new String(b,0,n);
                         area.append(s);    
                }
          }
          catch(MalformedURLException e1) {
               inputURLText.setText(""+e1);
               return;
          }
          catch(IOException e1) {
              inputURLText.setText(""+e1);
              return;
          }  
       }
    }
    

    4、运行程序
    在这里插入图片描述

    三、遇到问题

    做该题时,输入书中的网址出现错误,后来明白需要建立自己的IIS站点,操作步骤如下:

    1、控制面板→程序→启动或关闭Windows功能→Internet Information Services→勾选所有FTP服务;勾选万维网服务的应用程序开发功能中的.NET Extensibility 4.8、ASP.NET 4.8、ISAPI扩展、SAPI筛选器

    2、控制面板→系统和安全→管理工具→Internet Information Services (IIS管理)→添加网站

    网站名称随意取;物理路径为你要读取的文档所放地;IP地址可不填;端口最好不填8080;主机名看需求填写

    3、配置默认文档

    4、启动目录浏览功能

    5、右击网站→编辑权限→安全选项卡→添加一个Everyone用户→勾选完全控制

    6、在网页中输入localhost:端口(自己填的)或者本地ipv4地址:端口(自己填的)

    重新运行Java程序,输入相应内容,终于成功!

    展开全文
  • 实验要求: 创建一个URL对象,然后让URL对象返回输入流,通过该输入流读取URL所包含的资源文件 --------说白了就是你项目里有个文件,读出来,我采用的本地服务器 运行如下 一、先搭建本地服务器 1.控制面板)程序...

    实验要求:

    创建一个URL对象,然后让URL对象返回输入流,通过该输入流读取URL所包含的资源文件

    --------说白了就是你项目里有个文件,读出来,我采用的本地服务器 运行如下
    在这里插入图片描述

    一、先搭建本地服务器

    1.控制面板)程序)程序和功能)启用或关闭 Windows 功能—Internet Information Services全选,等待修改完成

    在这里插入图片描述

    2.控制面板)所有控制面板项,管理工具)选择Internet信息服务(IIS)管理器,网站处右键–添加网站
    在这里插入图片描述
    其中应用程序选DefaultAppPool,可以自己分配ip和端口,默认也行,物理路径添加你的项目,最后点确定

    然后就能看见已经添加了 右边选择浏览
    在这里插入图片描述

    首次可能会出现以下报错:
    在这里插入图片描述
    那么我们就按照提示操作操作一遍,在网站选中你的网站,双击
    在这里插入图片描述
    双击目录浏览,然后如下图,点右侧的启用
    在这里插入图片描述
    再回去,启动浏览,就显示目录了在这里插入图片描述

    二、新建Java项目

    代码如下:

    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    public class ReadURLSource {
    	public static void main(String args[]) {
    		new NetWin();
    	}
    }
    
    class NetWin extends JFrame implements ActionListener, Runnable {
    	JButton button;
    	URL url;
    	JTextField inputURLText; // 输入URL
    	JTextArea area;
    	byte b[] = new byte[118];
    	Thread thread;
    
    	NetWin() {
    		inputURLText = new JTextField(20);
    		area = new JTextArea(12, 12);
    		button = new JButton("确定");
    		button.addActionListener(this);
    		thread = new Thread(this);
    		JPanel p = new JPanel();
    		p.add(new JLabel("输入网址:"));
    		p.add(inputURLText);
    		p.add(button);
    		add(area, BorderLayout.CENTER);
    		add(p, BorderLayout.NORTH);
    		setBounds(60, 60, 560, 300);
    		setVisible(true);
    		validate();
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    
    	public void actionPerformed(ActionEvent e) {
    		if (!(thread.isAlive()))
    			thread = new Thread(this);
    		try {
    			thread.start();
    		} catch (Exception ee) {
    			inputURLText.setText("我正在读取" + url);
    		}
    	}
    
    	public void run() {
    		try {
    			int n = -1;
    			area.setText(null);
    			String name = inputURLText.getText().trim();
    			url = new URL(name); // 使用字符串name创建url对象
    			String hostName = url.getHost(); // url调用getHost()
    			int urlPortNumber = url.getPort();
    			String fileName = url.getFile();
    			InputStream in = url.openStream(); // url调用方法返回一个输入流
    			area.append("\n主机:" + hostName + "端口:" + urlPortNumber + "包含的文件名字:" + fileName);
    			area.append("\n文件的内容如下:");
    			while ((n = in.read(b)) != -1) {
    				String s = new String(b, 0, n);
    				area.append(s);
    			}
    		} catch (MalformedURLException e1) {
    			inputURLText.setText("" + e1);
    			return;
    		} catch (IOException e1) {
    			inputURLText.setText("" + e1);
    			return;
    		}
    	}
    }
    

    运行后弹出窗口
    在这里插入图片描述

    输入刚才网站浏览中的地址,后面加上/a.txt
    在这里插入图片描述
    完毕

    展开全文
  • 实验平台linux实验内容编写TCP服务器和客户端程序,程序运行时服务器等待客户端连接。一旦连接成功,服务器显示客户端的IP地址和端口号,并向客户端发送字符串实验原理TCP是面向连接的通信,其主要实现过程如下:...

    实验平台

    linux

    实验内容

    编写TCP服务器和客户端程序,程序运行时服务器等待客户端连接。一旦连接成功,服务器显示客户端的IP地址和端口号,并向客户端发送字符串

    实验原理

    TCP是面向连接的通信,其主要实现过程如下:

    5d6367e568ccc72b38cd3bc2488d338f.png

    我们将服务器代码分为两部分。

    1. init_tcp_server() tcp服务器的初始化

    2. main() 实现读写数据

    这样做的好处是main函数不必写的特别冗长,利于维护。从框架上来说,服务器的初始化也与读、写无关。

    tcp服务器的初始化----init_tcp_server()

    1. 创建socket

    sockfd = socket(AF_INET, SOCK_STREAM, 0); //AF_INT:ipv4, SOCK_STREAM:tcp协议

    2. 设置socket  当然这一步可以省略

    int32_t opt = 1;

    ret= setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));

    详细说明:

    3. 绑定(bind函数)

    将socket和地址(包括ip,port)绑定。需要定义一个结构体地址,以便于将port的主机字节序转化成网络字节序

    struct sockaddr_in serveraddr; //地址结构体

    bind函数

    bind(sockfd,(struct sockaddr*)&serveraddr,sizeof(serveraddr))

    4. listen监听,将接收到的客户端放入队列

    listen(sockfd,10) //第二个参数是队列长度

    5. 调用accept函数,从队列获取请求,返回socket描述符,如果没有请求(没有客户端连接),将会阻塞,直到获取请求

    int fd=accept(sockfd, (struct sockaddr*)&clientaddr, &clientaddr_len);

    至此服务器初始化完成,返回成功连接的套接字fd。

    服务器端代码如下:tcpserver.c

    #include #include#include#include#include#include#include#include

    #define PORT 1234

    #define BACKLOG 10

    #define BUFFER_SIZE 100

    /**

    * @brief 初始化tcp服务器

    * @param[in] listenfd 监听套接字

    * @return -1 - 失败, socket 文件句柄 - 成功*/int32_t init_tcp_server(int32_t listenfd)

    {structsockaddr_in server;structsockaddr_in client;

    int32_t connectfd= 0;

    int32_t addrlen;

    int32_t ret= 0;

    addrlen= sizeof(client);/**< 创建一个tcp套接字*/listenfd= socket(AF_INET, SOCK_STREAM, 0);if (listenfd == -1)

    {

    perror("create socket failed!\n");

    exit(1);

    }/**< 设置一个tcp套接字*/int32_t opt= 1;

    ret= setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));if (ret < 0)

    {

    perror("set socket failed!\n");

    exit(1);

    }/**< 设置服务器监听所有的IP地址*/bzero(&server, sizeof(structsockaddr_in));

    server.sin_family=AF_INET;

    server.sin_port= htons(PORT); /**< 主机字节序转化成网络字节序*/server.sin_addr.s_addr=htonl(INADDR_ANY);/**< 与服务器进行绑定*/

    if (bind(listenfd, (struct sockaddr *)&server, sizeof(server)) == -1)

    {

    perror("bind error");

    exit(1);

    }/**< 监听*/

    if (listen(listenfd, BACKLOG) == -1)

    {

    perror("listen error");

    exit(1);

    }/**< 等待客户端连接,如果没有,一直阻塞*/

    if ((connectfd = accept(listenfd, (struct sockaddr *)&client, &addrlen)) == -1)

    {

    perror("accept error");

    close(listenfd);

    close(connectfd);

    exit(1);

    }

    printf("You got a connection from client's ip is %s, port is %d\n", inet_ntoa(client.sin_addr), htons(client.sin_port));returnconnectfd;

    }intmain()

    {

    int32_t listenfd= 0;

    int32_t connectfd= 0;char buf[BUFFER_SIZE] = "Welcome to my server";

    connectfd=init_tcp_server(listenfd);

    send(connectfd, buf, BUFFER_SIZE,0); /**< 发送信息到客户端*/close(connectfd);

    close(listenfd);

    }

    客户端

    同样,将客户端代码分成两部分:

    1. init_tcp_client() tcp客户端的初始化

    2. main() 实现读写数据

    客户端的初始化较为简单,如上图,只要实现socket和connect函数即可。但是我们希望可以手动输入客户端连接的IP地址,便于以后扩展,因此需要给客户端初始化传入一个参数。例如,输入:

    ./tcpclient 127.0.0.1

    客户端代码如下:tcpclient.c

    #include #include#include#include#include#include#include#include

    #define PORT 1234

    #define BUFFER_SIZE 100int32_t init_tcp_client(char *ipaddr)

    {int sockfd = 0;structsockaddr_in server;if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

    {

    perror("create socket failed!\n");

    exit(1);

    }

    bzero(&server, sizeof(structsockaddr_in));

    server.sin_family=AF_INET;

    server.sin_port=htons(PORT);

    inet_pton(AF_INET, ipaddr,&server.sin_addr.s_addr); /**< 点分十进制转换成二进制的网络字节序*/

    if (connect(sockfd, (struct sockaddr *)&server, sizeof(server)) == -1)

    {

    perror("connect error");

    exit(1);

    }returnsockfd;

    }

    int32_t main(int argc, char*argv[])

    {

    int32_t sockfd, num;charbuf[BUFFER_SIZE];if (argc != 2)

    {

    printf("Usage:%s \n",argv[0]);

    exit(1);

    }

    sockfd= init_tcp_client(argv[1]);if ((num = recv(sockfd, buf, BUFFER_SIZE, 0)) == -1)

    {

    perror("recv error");

    exit(1);

    }

    buf[num- 1] = '\0';

    printf("Server Message: %s\n", buf);

    close(sockfd);return 0;

    }

    Makefile文件如下:

    all:server client

    server:tcpserver.c

    gcc tcpserver.c-o server

    client:tcpclient.c

    gcc tcpclient.c-o client

    clean:

    rm-rf server client

    实验结果如下:

    720137bdec96003e957d4df75e73c80a.png

    3b312f7388e3ab904721de21fbb36499.png

    展开全文
  • 4、SSRF渗透Redis数据库,Redis客户端和服务器端怎么通信?通信报文是怎么样的?看这里就行。 5、SSRF渗透Struts2总是失败?不知道如何编码?不知道如何使用Gopher协议?来这里。 6、SSRF表面简单,实则有无数坑,...
  • 上一讲中我们介绍了客户端在向服务器发出请求的过程,这个过程我们是不可见的,但是我们可以用系统提供的 Telnet 服务来做相关的实验查看客户端向服务器请求的过程。这一讲我们就来学习一下这方面的知识,还要学习...
  • 一直在负责实验室后台新功能的开发和维护,最近有了一个新需求:给实验室官网添加webp格式的支持.具体的就是说首先所有上传图片的操作需要在上传后转换出一份webp格式的.准备工作其实将图片转换为webp并不难,只需要...
  • 编写1个JSP页面,在该页面中使用request的方法获取客户端的IP地址、客户机名称、服务器名称以及服务器端口号。 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> &...
  • 人生第一次写博客哈哈哈,一直都在看别人的也学到了很多,今天遇到了一个很... 这个学期刚刚学完计算机网络,假期的时候就有两周实验课。今天做的是使用Socket编写一个Http服务器和客户端。功能要能进行客户端从服...
  • 1、读取服务器端文件 2、会结账的机器人 3、读取服务器端的窗口 4、与服务器玩猜字游戏 5、传输图像
  • java实现的http服务器

    2011-06-19 15:12:39
    java实现的简单http web服务器,能响应浏览器端GET请求,并返回响应资源,服务器端界面能显示相应信息。包含实验报告。
  • 20145315 《Java程序设计》实验实验报告实验Java网络编程网络编程技术客户端步骤:建立网络连接交换数据:加密使用AES或者DES/AES或者DES加密密钥key并发送关闭网络连接服务器端步骤:监听端口获得连接交换数据...
  • java实验 基于GUI的网络通信程序设计

    千次阅读 2019-04-18 16:50:08
    服务器端 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import java.net.ServerSocket; import java.net.Socket; pu...
  • Java实验———基于GUI的网络通信程序设计 实验内容:编写程序完成以下功能: 1.设计一个基于GUI的客户-服务器的通信应用程序,如图1,图2所示。 图1 Socket通信服务器端界面 图2 Socket通信客户端界面 2.图1为...
  • 7.会编写服务器端多线程应用程序。 8.熟悉Java 数据库连接方法,能在程序中读写数据库。 二、实验内容 Java多线程与C/S综合应用程序设计(C/S聊天系统、ftp程序等)。 三、实验硬件、软件环境 1.PC计算机一台,配置...
  • 方舟编译器 runtime 参考实现 pacific 发布了 0.1 版本,支持运行基于方舟编译器的 Hello World 程序。...发布公告介绍,pacific 开发团队使用 QEMU 提供 AArch64 架构支持,将方舟编译器的 Java ...
  • 20175314 实验Java网络编程一、实验报告封面课程:Java程序设计 班级:1753班 姓名:薛勐 学号:20175314 指导教师:娄嘉鹏 ... 2、学会建立客户端与服务器端之间的联系; 3、学习并应用密码学的相关内容二、实...
  • 1、使用 ServerSocket 类和 Socket 类实现服务器端和客户端程序。 服务器程序的处理规则如下: 1)向客户端程序发送 Verifying Server!。 2)若读口令次数超过 3 次,则发送 Illegal User!给客户端,程序退出。否则...
  •  * 我想采用: 在服务器端建立一个数组,用于存储Socket  * 这样服务器端每创建一个socket,就存储一个,同时,每个客户端都有一个编号,  * 那么,客户端的编号也就是服务器返回给他的那个套接字的存储位置。 ...
  • 1.读取服务器端文件。 ² 实验要求: 创建一个URL对象,然后让URL对象返回输入流,通过该输入流读取URL所包含的资源文件。 package lzy; import java.awt.*; import java.awt.event.*; import java.net.*; import...
  • 实验内容 1.掌握Socket程序的编写; 2.掌握密码技术的使用; 3.设计安全传输系统。 我和20145306张文锦组队编程 ...查看ip地址 和端口号占用情况 ...服务器端代码如下: package 实验5; import java.io.*; ...
  • 参考文档:https://www.sxt.cn/Java_jQuery_in_action/twelve-tcpsocket.html参考视频:https://www.bilibili.com/video/BV1ct411n7oG?p=2441.代码...客户端和服务器端的通信关系2.通过Socket实现通信的流程(7步)3...
  • 学会使用套接字读取服务器端的对象;掌握DatagramSocket类的使用。实验内容:1、创建一个URL对象,然后让URL对象返回输入流,通过该输入流读取URL所包含的资源文件。程序模版请按照模版要求,将【代码】替换为程序...
  • 实验步骤这一部分是与我的partner合作的,详见他的博客- [20145326 《Java程序设计》实验五——Java网络编程及安全实验报告](http://www.cnblogs.com/cxy1616/p/5471028.html)我设计客户端部分确定服务器端IP地址和...
  • (1)启动服务器端程序后,可以通过客户端程序实现文件的上传,上传后的文件保存到d:\upload下面。 (2)多个客户端可以同时上传。 (3)一个客户端可以上传多次。 (4)客户端使用Swing实现。 服务器端源程序: ...
  • java聊天室实验报告

    2017-12-31 16:44:48
    一、实验目的 1.能在程序中熟练应用数据流技术...7.会编写服务器端多线程应用程序。 8.熟悉Java 数据库连接方法,能在程序中读写数据库。 二、实验内容 Java多线程与C/S综合应用程序设计(C/S聊天系 统、ftp程序等)。
  • 2.使用服务器端RSA的私钥对DES的密钥进行解密,对秘钥进行解密之后使用DES对密文进行解密。3.计算解密后的hash值来确定解密是否正确。注:加密算法、秘钥、Hash函数计算过程均利用的老师提供的代码服务器代码如下:...
  • 实验2 使用套接字读取服务器端对象 63 实验3 基于UDP的图像传输 67 上机实践11 JAVA SWING 72 实验1 JLAYEREDPANE分层窗格 72 实验2 进度条 73 实验3 使用表格显示日历 75 实验4 多文档界面(MDI) 80 上机实践12 ...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 247
精华内容 98
关键字:

java实验服务器端的

java 订阅