一、一种传接(没处理java.net拒绝连接,就这样吧)
客户端
package tt.tt.tt.oo;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try{
InetAddress ia=InetAddress.getByName("127.0.0.1");
Socket s=new Socket(ia,9999);
String str="这条消息来自客户端";
OutputStream os=s.getOutputStream();
os.write(str.getBytes());
s.shutdownInput();
os.close();
s.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
服务器
package tt.tt.tt.oo;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket ss=new ServerSocket(9999);
System.out.println("启动了");
Socket s=ss.accept();
InputStream is=s.getInputStream();
byte[] b=new byte[1024];
int num=0;
while ((num=is.read(b))!=-1){
String str=new String(b,0,num);
System.out.println(str);
}
is.close();
s.close();
ss.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
三、重点是<a></a>的获取
①前提:仅仅提<a>内容的代码 注意i=1起头 (注释的是保留<a>标签,注意i的 起终位置)
package tt.tt.tt.t3;
public class main {
public static void main(String[] args) {
String html="<div class=\"tbh-qr J_Module\" data-name=\"qr\" data-spm=\"201858\"><div class=\"qr\"><a href=\"https://market.m.taobao.com/app/fdilab/download-page/main/index.html\" class=\"qr-bd clearfix\"><span id=\"mtb\" class=\"h\">下载淘宝</span><img class=\"qrcode\" src=\"//g.alicdn.com/s.gif\" data-src=\"//gw.alicdn.com/imgextra/i4/O1CN01GZ8Gm51DHyo7asI5m_!!6000000000192-2-tps-160-160.png\" aria-labelledby=\"mtb\"/></a></div>";//存网页所以代码
String[] split=html.split("<a");
for(int i=1;i<split.length;i++){//是1不是0!
String s=split[i];
int start=s.indexOf(">");
int end=s.indexOf("</a>");
System.out.println(s.substring(start +1,end));
}
//String[] split=html.split("</a>");
// for(int i=0;i<split.length-1;i++){
// String s=split[i];
// int start=s.indexOf("<a");
// System.out.println(s.substring(start,s.length())+"</a>");
// }
}
}
正解部分:
package tt.tt.tt.t3;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
public class urltest {
public static void main(String[] args) throws IOException {
URL url=new URL("https://www.taobao.com/");
InputStream is=url.openStream();
FileOutputStream fos=new FileOutputStream("E:/TEST/taobao.html");
BufferedOutputStream bos=new BufferedOutputStream(fos);
String html="";//存网页所以代码
byte[] b=new byte[1024];
int num=0;
while ((num=is.read(b))!=-1){
bos.write(b,0,num);
String s=new String(b,0,num);
System.out.println(s);
html+=s;//存
}
String[] split=html.split("<a");
for(int i=1;i<split.length;i++){
String s=split[i];
int start=s.indexOf(">");
int end=s.indexOf("</a>");
String str=s.substring(start +1,end);
System.out.println(str.replace("\n","").trim());//剔除多余回车+两边多余的空格
}
bos.close();
fos.close();
is.close();
}
}