------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
网络编程
网络模型:
OSI参考模型、TCP/IP参考模型
1.找对方IP
2.数据发到对法指定的应用程序上,为了表示这些应用程序,所以给这些网路应用程序都用程序都用数字进行标识。为了方便称呼这个数字,就叫端口(逻辑端口)
3.定义通信规则,通讯规则称为协议
国际组织通用协议:TCP/IP
网络通信要素:
IP地址,端口,传输协议
IP地址:
1.网络中的设备标识
2.不易记忆可用主机名
3.本地回环地址127.0.0.1主机名:localhost
传输协议:
UDP特点:
1.面向无链接,将数据及源和目的封装成数据包,不需要建立链接。
2.每个数据大大小限制在64k以内。
3.因无链接是不可靠协议
4.不需要建立链接速度快
TCP特点:
1.建立链接,形成传输数据的通道
2.在链接中进行数据大量传输
3.通过三次握手完成链接,是可靠协议
4.建立链接,效率低
Socket:
1.Socket就是为了网络服务提供的一种机制
2.通信的两端都有Socket
3.网络通信其实就是Socket间的通信
4.数据在两个Socket间通过IO传输
DatagremSocket:
白哦是发送和接收数据报包的套接字
发程序
收程序
TCP传输
1.Socket和SeverSocket分别为客户端及服务端
2.建立客户端和服务器端
3.建立链接后,通过Socket中的IO流进行数据传输。
4.关闭Socket
客户端
通过查阅Socket对象,发现在该对象建立时,就可以链接指定主机,因为TCP是面向链接的,所以在建立Socket服务时,就要有服务端存在,并链接成功,形成通路后再该通道进行数据传输。
步骤:
1.创建Socket服务并指定要链接的主机和端口
2.获取Socket流中的输出流,将数据写到流中,通过网络发给服务端。
3.获取Socket流中的输入流,将服务器反馈的数据获取,定义端点接收数据并打印控制台上
4.关闭资源
服务端
1.建立服务端的Socket服务,ServerSocket();并监听一个端口
2.获取链接过来的客户端对象,通过ServerSocket()的accept()完成,未连接则等待,所以这个方法是阻塞式的。
3.如果客户端发过数据,那服务端要使用对应的客户端对象,并获取客户端对象的读取流来刦发过来的数据,并打印控制台。
4.关闭资源
会出现莫名等待因为有阻塞方法,这些方法未读到技术标记而导致两端都在等待,需要加入刷人字符的语句。
单线程的服务器有局限性,当A连上后,被服务器获取,服务器执行具体流程,这时B连只哟等待,因服务器还没处理完A的请求,还没循环回来执行下一次accept方法,所以取不到B对象,为了能并发访问,服务器最好将每个客户封装到一个单独线程中,这样可同时处理多个客户请求。
URL:同一资源定位符。
String getFile();获取URL文件名
String getHost();获取URL主机名
String getPath();获取URL路径部分
int getPort();获取URL端口号
String getProtocol();获取URL协议
String getQuery();查询部分
与图形化界面相结合。
正则表达式:(regex)
符合一定规则的表达式。
作用:
用于专门操作字符串。
特点;
用于一些特定的符号来表示一些代码操作
学习正则表达式就是学习一些特殊符号的使用
好处:
可以简化对字符串的复杂操作
弊端:
符号定义越多,正则表达式阅读性越差。
具体操作功能:
1.匹配:
String matches():用规则匹配整个字符串一处不符合就返回假。
2.切割:
String splite():
3.替换:
String replaceAll():
4.获取:
将字符串中符合规则的子串取出。
其实String类中的matches方法。用的就是Pattern和Matcher对象来完成的。只不过被String的方法封装后,用起来较为简单。但是功能却单一。
操作步骤;
1.将正则表达式封装成对象
2.将正则对象鱼要操作的字符串相关联
3.关联后,获取正则匹配引擎
4.通过引擎对呼和规则的子串进行操作,如取出。
Pattern
正则表达式的编译表现形式。
网页爬虫: