第九讲网络编程

ti第九讲网络编程

Video 1

网络编程的基础知识

ü  网络协议TCP/IP

ü  IP地址和Port端口—IP地址,4bytes

本地回路的IP地址:127.0.0.1—不经过网卡传递;只经过TCP/IP;只用于本机的用来test的。

端口的范围为0~65535之间,0~1023之间的端口数是用于一些知名的旺火服务和应用。

ü  UDPTCP

TCP—传输控制协议,是面向连接的通信协议。

UDP—用户数据报协议(User Datagram Protocol),是无连接通信协议。

ü  Socket

Socket 是网络驱动层提供给应用程序编程的接口和一种机制。

可以把socket比喻成一个港口码头。应用层序只要把货物放到港口码头上,就算完成了货物的运送。应用程序只需等待货物到达码头后,将货物取走。

Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IPport

ü  Socket数据发送过程

ü  Java中的网络编程类

²  位于java.net包中

²  Datagramsocket类用于UDP通信

²  Serversocket类用于TCP通信的服务器端

²  Socket类用于TCP通信的服务器和客户端

 

Video 2—UDP 网络程序

Datagramsocket

构造函数

Public DatagramSocket()

Public DatagramSocket(int port)

Public DatagramSocket(int port, inetAddress laddr)

Close 方法

要将datagram关闭

Send(datagrampacket p)

Receive(datagramPacket p)

datagramPacket class

如果把datagramSocket比作创建的港口码头,那么DatagramPacket就是发送和接受数据的集装箱。

构造函数:

Public DatagramPacket(byte[] buf, int length)

Public DatagramPacket(byte[] buf, int length, InetAddress address, int port)//发送时必须制定IP

                                                                                                                                                             AND PORT/

getInetAddress getPort方法

getData getLength 方法

InetAddress class

是用于表示计算机IP地址的一个类,而在日常应用中的计算机地址是192.168.0.1www.it315.org

getName()   and    getHostName()

video 3 –UDP编写网络聊天程序

1. 编写图形用户界面;

2. 编写网络消息发送功能

3. 编写网络消息接受功能

Video 4—UDP编写网络聊天程序con’t

私有IP通过网关代理上网的原理

Video 5 –TCP 网络程序

TCP网络程序的工作原理:

ServerSocket

第一个构造函数还没有与任何端口连接;

第二个构造函数指定端口;端口号为0,系统会自动指定未用的端口号。比较常用。

第三个:可以指定端口,backlog

第四个:还可以指定IP地址,应用于多个IP的电脑。

 

不需要用时,记得close。好让系统可以重新分配端号

Accept

 

Socket

当客户端和服务器连接之后,getinputstreamgetoutputstream

 

简单的TCP服务器程序:

1. TCP服务器程序必须先启动运行,TCP客户程序才能连接上TCP服务器

2. 使用windows提供的telent程序测试TCP服务器程序

3. 使用bufferedreader包装类,从网络输入流中一次读取一行文本。

4. 如何打开telnet程序的本地回显功能。

 

Video 6—完善TCP服务器程序模型

编写TCP服务器程序模型的编写要点:需要循环调用;需要独立的县城中运行;

很好玩,哈哈不错!

 

Video 7—如何检测和解决端口冲突问题

Netstat命令可以查看当前正在被使用的端口

Netstat – help可以查看更多的服务

 

通过一个配置参数来指定TCP服务程序所使用的端口号。

如果用户指定端口号,服务器下次启动时,应该用那个保存的那个;

 

TCP 客户端程序

可以通话很开心,哈哈哈

 

TCP网络连接上传递对象

Objectinputstream and ObjectOutputStream 可以从底层输入流中读取对象类型的数据和将对象类型的数据写入到底层输出流。

使用objectinputstreamobjectoutputstream来包装底层网络字节流,TCP服务器和TCP客户端之间就可以传递对象类型的数据。

 

注意:

怎样理解应用程序协议和网络协议的关系。

FTP是建立在TCP/IP的网络通信协议上。

怎样区分ASPJSP与网络编程的概念。

 

Video 8—访问internet网络资源

URL—uniform resource locator

URL的基本组成:协议、主机名、端口号、资源名。

例如

复杂的可能包含账号密码,认证方式。

相对URL,例如:”/a.html” “../a.html” “../../a.html” “a.html”

URL编码规则;

         将空格换为+

对于0~9a~z, A~Z保持不变

对于其他的字符,用这个字符的当前字符集编码在内存中的十六进制格式表示,并在每个自己钱加上一个百分号,;对于空格也可以直接使用其十六进制编码方式,而不是将他转换成+

 

HTTP 协议的会话过程

基于HTTP1.0 协议的客户机与服务器的信息交换过程

HTTP请求消息
一个完整的请求信息包括:一个请求行、若干消息头、以及实体内容:

例如:

一个完整的响应消息包括:一个状态行,若干消息头,以及实体内容:

了解几个HTTP消息头:

Connection—用于指定处理完本次请求/响应后,客户端与服务端是否继续保持连接。设置值可以为keep-alive and close

Accept-Language—用于指出客户机期望

Video 9—URL

方法:getProtocol, getHost, getPort, getFile

openConnection方法返回URLConnection对象。

 

工厂设计模型

URL类的setURLStreamHandlerFactory(URLStreamHandlerFactory fac)

StreamHandlerFactory 类的createURLStreamHandler(String protocol)

URLConnection HttpURLConnection

SetRequestProperty 方法

getHeaderFields 方法

getInputStream getOutputStream

getHeaderField, getContentLength, getContentEncoding, getContentType

HttpURLConnectiondisconnect可以关闭底层共享网络。

 

Video 10—URLConnection and HttpURLConnection class

 思考与实践:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值