早上先是加深了对服务器构建和连接这些代码的理解,完善了程序,实现了简单的单线程的客户端与服务器之间的对话,注意回顾代码,多练习。
服务器构建方法代码:
// 客户端和服务端交互,聊天。但是,只能是你一言和一语,如果有一个不回复,大家就聊不了了。
public static void test8() {
System.out.println("服务器已启动,监听4396端口");
try {
ServerSocket serverSocket = new ServerSocket(4396);
Socket socket = serverSocket.accept();
//发送给客户端一个欢迎语
PrintWriter pw = new PrintWriter(socket.getOutputStream());
pw.println("welcome to my server!");
pw.flush();
//接收客户端的请求,循环接收。每接收一行,就从键盘获取一条语句,再发给客户端
Scanner clientScanner = new Scanner(socket.getInputStream());
Scanner keybordScanner = new Scanner(System.in);
while(clientScanner.hasNextLine()){
String line = clientScanner.nextLine();
System.out.println("客户端来的消息:"+line);
//从键盘接收一条语句,
String lineFromKeybord = keybordScanner.nextLine();
//发送给客户端
pw.println(lineFromKeybord);
pw.flush(); //刷新缓冲区域
}
} catch (IOException e) {
e.printStackTrace();
}
}`
客户端代码:
// 客户端主动连接到服务端,主动获取键盘的输入 ,发送消息给服务端。
//服务端接收客户端的请求,并且回复内容给客户端,客户端接收到内容,把内容打印出来
public static void test4() {
try {
Socket socket = new Socket("192.168.13.20",6224);
Scanner s = new Scanner(socket.getInputStream());
String line = s.nextLine();
System.out.println(line);
//获取客户端的键盘输入,发送给服务端
InputStream is = System.in;
Scanner keybordScanner = new Scanner(is);
PrintWriter pw = new PrintWriter(socket.getOutputStream());
while(keybordScanner.hasNextLine()){
String inputLine = keybordScanner.nextLine();
pw.println(inputLine);
pw.flush();
//接收服务端的响应
String msgFromServer = s.nextLine();
System.out.println("服务端响应:"+msgFromServer);
}
} catch (IOException e) {
e.printStackTrace();
}
}
下午学习java网络编程的URL类,URL类主要学来用以解析和抓取网页内容,主要用的方法有openConnection。多复习代码。
第5天
概念不多,主要是应用URL类和谷歌浏览器的开发者工具,写一些简单的方法代码去抓取网络的图片,还先初步的学习了Jsoup的一些用法。