JAVA实验五
jb_get = new JButton("获取"); jtf_url = new JTextField("", 11); jLabelUrl = new JLabel("请输入网址");
4
jtf_filepath = new JTextField("D:/Test", 11); jLabelFilePath = new JLabel("请输入存储地址");
sinbye = true; } } } out.close(); in.close(); sin.close(); clientSocket.close(); serverSocket.close();
}catch(Exception e){} } } 客户端: package 实验五;
public static void main(String[] args) { new Test1();
}
public Test1() { initView();
}
@Override public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub if (checkInput()) {
getFilePath().equals("") || getFileName() == null || getFileName().equals("")) {
return false; } return true; }
private String getUrl() { return jtf_url.getText().toString().trim();
Socket clientSocket = null;
try{
serverSocket = new ServerSocket(5555);
System.out.println("等待对话");
clientSocket = serverSocket.accept();
System.out.println("连接成功,对话开始!");
while(true ){
if(inbye == false){
System.out.print("客户端");
inputLine = in.readLine();
System.out.println(":"+ inputLine);
if(pareToIgnoreCase("再见")==0){
}
} catch (Exception e) {
e.printStackTrace();
} finally {
5
try { if (in != null) { in.close(); }
} catch (Exception e2) { e2.printStackTrace();
} } return result; }
2
public class Test1 extends JFrame implements ActionListener { private static final long serialVersionUID = 1L;
private JPanel jPanel; private JTextField jtf_url, jtf_filename, jtf_filepath; private JButton jb_get; private JLabel jLabelUrl, jLabelFilePath, jLabelFilename;
实验地点:
一、实验目的: 1) 掌握IP地址与Inetaddress类的关系。 2) 掌握使用URL定位网络资源。 3) 掌握基于TCP和UDP协议的客户端与服务端的通信编程。
二、实验内容: 1) 编写一个程序,实现访问一个网站并将指定的一个页面保存到本地。 2) 编写一个简单的聊天程序
难度系数递增:一对一 → 一对多 → 多对多 →记录用户状态
浙江理工大学
《Java 程序设计》
实验报告
2015~2016 学年 第 2 学期 学院 班级 姓名 学号 任课教师
计算机科学与技术专业 2016 年 5 月
1
《Java 程序设计》实 验 报 告五
实验名称:Java 网络编程 所使用的工具软件及环境:
Myeclipse2015 Windows8.1
} 2、 服务器: package 实验五;
import .*;
import java.io.*;
public class ServerDemo2{
public static void main(String[] args)throws Exception{
ServerSocket serverSocket = null;
}
public static String doGet(String url) {
String result = "";
BufferedReader in = null;
try {
URL realUrl = new URL(url);
URLConnection connection = realUrl.openConnection();
}
@SuppressWarnings("resource") private boolean saveToFile(String saveHtmlMessage) {
File file = new File(getFilePath(), getFileName()); try {
byte[] bype = saveHtmlMessage.getBytes(); new FileOutputStream(file).write(bype);
BufferedReader
sin
=
new
BufferedReader(new
InputStreamReader(System.in));
boolean sinbye = false;
boolean inbye = false;
String sinputLine = null;
String inputLine = null;
}
private String getFileName() { // TODO Auto-generated method stub return jtf_filename.getText().toString().trim();
}
private boolean checkInput() { // TODO Auto-generated method stub if (getUrl() == null || getFilePath() == null || getUrl().equals("") ||
6
inbye = true; } } if(sinbye == false){ System.out.print("服务器: "); sinputLine = sin.readLine(); } if(sinbye == true && inbye == true){ break; } if(sinbye == false){ out.println(sinputLine); out.flush(); if(pareToIgnoreCase("再见")==0){
jPanel.add(jLabelFilename); jPanel.add(jtf_filename);
jb_get = new JButton("打开网址并存储文件");
jb_get.addActionListener(this); this.add(jPanel, "Center"); this.add(jb_get, "South"); this.setTitle("获取网址"); this.setSize(400, 150); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);
connection.connect();
in
=
new
BufferedReader(new
InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
System.out.println();
Hale Waihona Puke PrintWriter out = new PrintWriter(clientSocket.getOutputStream(),true);
BufferedReader in =
new
BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
三、设计流程图
四、源代码 1、 package 实验五;
import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.InputStreamReader; import .URL; import .URLConnection;