小知识
telnet 命令 (也就是客户端软件) tlenet 192.168.1.117 8080windows远程登录工具 。连接网络下的任意一台主机,进行命令式倒置
ServerSocket s = new ServerSocket(int port, int backlog); 其中第二个参数为允许链接的个数,最多为50个
System.out.println(InetAddress.getByName("WWW.BAIDU.COM"));查找服务器域名的IP地址
示例:
模拟浏览器访问服务器端,并接收返回数据给模拟浏览器
血的教训:在模拟客户端向服务器发送消息的时候,HTTP1.1前面造成不能多加空格,否则取不到网页的文本信息,只能取得表头 pw.println("GET "+path+" HTTP/1.1");
第一步:模拟服务器,由浏览器向访问服务器,在服务器端获取浏览器发送的信息
ServerSocket ss = new ServerSocket(11000);
Socket s = ss.accept();
InputStream is=s.getInputStream();
byte [] b = new byte[1024];
int len = 0;
while((len = is.read(b))!=-1){
System.out.println(new String(b));
}
第二步:模拟客户端,用服务器发送指定的信息,查看接收到的信息,就可以模拟浏览器访问服务器了
String url = "http://192.168.1.117:808/Demo/src/index.jsp";
int index1 = url.indexOf("//")+2;
int index2 = url.indexOf("/",index1);
String str = url.substring(index1,index2);
String[] arr = str.split(":");
String host = arr[0];
int port = Integer.parseInt(arr[1]);
String path = url.substring(index2);
//ta.setText(str+"...."+path);
Socket s = new Socket("192.168.1.117",8081);
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
pw.println("GET "+path+" HTTP/1.1");
pw.println("Accept: */*");
pw.println("Accept-Language: zh-cn");
pw.println("Host: 192.168.1.117:8081");
pw.println("Connection: closed");
pw.println();
pw.println();
BufferedReader bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = null;
while((line=bufr.readLine())!=null)
{
System.out.println(line);
}
URLConnection对象使用
URL与URI的区别
URI要比URL的范围的广
URL表示的是统一的资源标识,与定位。不只定义了资源地址。还提供了资源相关信息的方法
URIURI表示的是统一的资源标识,URI的范畴位于体系的顶层,,URL和URN的范畴位于体系的底层,可以说URI包含了URL。
相关方法:
url.getQuery();取得传递参数的方法;
url.openConnection()连接到一个地址。返回值为UrlConnection。因为是抽象类HTTPURLconnection,所以返回值一般写成其子类HTTPURLconnection
url.getFile();取得端口号以后的链接地址,包含参数
url.getPath()取得端口号以后的链接地址,包含参数
url.getPort() 取得端口号
url.getHost()取得主机名
访问服务器执行步骤
1、首先确定是什么服务器 http OR ftp或别的
2、解析链接地址中的 主机名和端口号封装成Socket
3、将主机名域名翻译成IP地址 去公网服务器查找(DNS)
(1)先在本地查找是否有这个域名 如域名localhost 在本地IP地址为127.0.0.1 域名为 先在C:\WINDOWS\system32\drivers\etc\hosts里面找,如果查找到了直接访问127.0.0.1 如果没有查找到,就到公网服务器去查找
***某些恶意网站 会连续不断的弹出某些窗口,直接在此将该域名的IP地址改为本地,则不会访问该IP地址,也就无法弹出窗口***
4、访问服务器