JAVA高级视频_网络编程_收获二


JAVA高级视频_网络编程_收获二

java 高级视频教程_网络编程 04——06.swf——10.swf

在网络传输数据的时候,不能仅仅拼接打印结果(接受到或发送出来的数据)判断程序是否有误。

编写TCP服务器程序模型的要点:
1、TCP服务器程序要想接受多个客户端连接,需要循环调用ServerSocket.accept方法。
2、服务器程序与每个客户端连接的话过程不能互相影响,需要在独立的线程中运行。
3、一个线程服务对象与一个服务器端Socket对象相关联,共同完成与一个客户端的会话。

如何检测和解决端口冲突问题。

1、使用netstat -na 查看当前正在使用的端口号。
2、通过一个配置参数来指定TCP服务程序所使用的端口号。
3、将用户多制订的端口号保存到一个文件中,当服务器程序下次启动运行时,直接从文件中读取那个端口号。

在TCP网络连接上传递对象
1、ObjectInputStream和ObjectOutputStream可以从底层输入流中读取对象类型的数据和将对象类型的数据写入到底层输出流。
2、使用ObjectInputStream和ObjectOutputStream来包装底层网络字节流,TCP服务器和TCP客户端之间就可以传递对象类型的数据。

两个经常混淆的概念:
1、怎样理解应用程序协议和网络通信协议的关系。
TCP协议可以保证计算机之间正确通讯,但不保证接收方是否可以理解发送方传递的数据。
TCP协议和FTP之间的关系好比为电话系统和语言的关系。

2、怎样区分ASP、JSP等网站编程语言与网络编程的概念
ASP/JSP用于产生网站内容的语言。

访问Internet网络资源
java.net包中还有URL、URLDecoder、URLEncoder、URLConnection、HttpURLConnection等类。

URL(统一资源定位符)——(Uniform Resource Locator)
URL的基本组成:协议、主机名、端口号、资源名
URL编码规则:将空格转换为“+”对0-9、a-z之间的字符保持不变。其他字符用十六进制表示并在每个字节钱加"%" ,对于空格可以使用%20来表示。
java.net包中有URLDecoder、URLEncoder两个类对URL实现编码和解码。

HTTP协议
HTTP协议1.0的会话过程
1、建立连接
2、发出请求信息
3、发出相应信息
4、关闭连接
性能缺陷:载入图像的时候请求过多,影响性能。

HTTP协议1.1的会话过程
1、建立连接
2、发出第一次请求
发出第N次请求...
3、发出第一次响应
发出第N次响应...
4、发出关闭连接请求
5、关闭连接

完整的请求消息包括:一个请求行、若干消息头、以及实体内容。
完整的响应消息包括:一个状态行、若干消息头、以及实体内容。
消息头和试题内容之间必须有空行。

了解几个HTTP消息头:
Connection——用于指定处理完本次请求、响应后,客户端与服务器是否保持连接,设置值可以设置为Keep-Alive和Close。
Accept-Language——用户之处客户机期望服务器返回的文档所使用的国家语言,可以指定多个以逗号分隔的国家语言。
Content-Length——用于表示实体内容的长度。
Range——用于指定服务器只需返回文档中的部分内容及内容范围。

Range:bytes=100-599
Range:bytes=100-
Range:bytes=-100

Content-Range——用于指定服务器返回部分实体内容的位置信息
Content-Range:bytes 2534-4522/7898

URL类
构造方法:
public URL(String spec)
public URL(String protocol,String host,int port,String file)
public URL(String protocol,String host,int port,String file,URLStreamHandler handler)
public URL(URL context,String spec)

常用方法:getProtocol()、getHost()、getPort()、getFile()。
openConnection()返回URLConnection对象。

工厂设计模式
在编写代码时,不能预见调用者使用具体的子项或不希望创建某个类的实例对象信息暴漏给外面的程序,则使用工厂模式。

URLConnection和HttpURLConnection类
URLConnection与HttpURLConnection的作用。
URLconnection的连接过程。
setRequestProperty方法。
getHeaderFields方法。
getInputStream和getOutputStream方法。
getHeaderField、getContentLength、getContentEncoding、getContentType等方法。
创建URLConnection对象是,并没有在底层网络进行连接。
需设置好后连接参数后,才能使用更多的get方法。

每一个HTTP连接可以被多个HttpURLConnection实例对象共享。
调用HttpURLConnection的disconnect方法可以关闭底层共享网络。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值