12月19日
学习内容:网络基础1-5
1. 网络协议TCP/IP
2. Socket数据发送过程:由应用程序产生socket,然后应用程序调用bind方法将socket信息通知给应用程序,应用程序将socket绑定以后,应用程序将socket发送数据,驱动程序就会从socket中取出数据并向网卡发送数据.
3. UDP
DatagramSocket类:
构造函数:
Public DatagramSocket()
Public DatagramSocket(int port)
Public DatagramSocket(int port,inetAddress laddr)
其他方法:
Close()方法 : 关闭驱动程序
Send(DatagramPacket p) 发送 UDP数据包
receive (DatagramPacket p)
DatagramPacket类:
构造函数:
Public DatagramPacket(byte[] buf, int len) 接收数据包字节数,
Public DatagramPacket(byte[] buf, int len,InetAddress address,int port)
其他方法:
getInetAddress和getPort方法
getData : 返回字节数组缓冲区
getLength : 返回数据长度
InetAddress类:计算机Ip地址的类
getByName/getHostName方法.
问题:中文字符接收不正确
解决:由于中文字符的长度和字节长度不一样,所以首先获得字节长度”.getBytes().Length”就可以完全显示出中文了.
4. TCP
ServerSocket类:
构造函数:
Public ServerSocket()
Public ServerSocket(int port)
Public ServerSocket(int port,int backlog) :backlog指定等待客户数量 默认为50
Public ServerSocket(int port,int backlog,InetAddress bindAddr): 指定多个Ip地址.
其他方法:
Close()方法:关闭
Accept()方法: 接收
Socket类:
构造函数:见JDK文档 略.
12月20日
学习内容:网络基础6-10
1. TCP服务器程序模型要点:
连接多个客户端连接,需要循环ServerSocket.accept()方法.需要在独立的线程中运行.一个线程服务对象与一个服务器端Socket对象相关联,共同完成与一个客户端的会话.
2. 检查TCP端口冲突问题:
netstat检查正在被使用的端口号.
通过直接配置参数指定TCP使用的端口号.
将端口号保存到文件中,当程序启动时,直接从文件中读取端口号.
3. Http协议会话过程:
基于Http1.0的:
缺陷:比如一个包含许多图像的网页文件,并没有包含真正的图像数据内容,而是指明了这些图像的URL地址.
Http1.1的:
一个完整的请求消息包括:一个请求行,n个消息头(可选),实体内容(可选).
4. URL类
构造函数(都可发生MalformedURLException异常):
Public URL(string spec) :使用URL字符串
Public URL(String protocol,String hots,int port,String file):分别是协议/主机名/端口号/z资源名称
Public URL(String protocol,String hots,int port,String file,URLStreamHandler handler):对资源进行具体处理的协议处理器.
Public URL(URL context,String spec)指向文件名的完整的URL
其他方法:getprotocol/getHost/getPort/gerFile等.
5. 工厂设计模式
URL的setURLStreamHandlerFactory(URLStreamHandlerFactory fac)静态方法
StreamHandlerFactory的createURLStreamHandler(String protocol)方法