1.网络编程
1.如何进行网络通讯的?
(1)找到对方IP。
(2)数据要发送到对方指定的应用程序上。为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识。
为了方便称呼数字,叫做端口。逻辑端口。
(3)定义通信规则。这个通信规则称为协议。
国际组织定义了通用协议TCP/IP。
2.网络通讯要素:
(1)IP地址:InetAddress 网络中设备的标识, 不易记忆,可用主机名。本地回环地址:127.0.0.1 主机名:localhost。
(2)端口号:用于标识进程的逻辑地址,不同进程的标识。有效端口:0到65535,其中0到1024系统使用或保留端口。
(3)传输协议:通讯的规则常见协议:TCP UDP
2.网络模型
(1)ISO七层模型
从应用层到物理层数据封包,传输到对面层,然后从物理层到应用层进行数据拆包。
物理层 ,数据链路层 ,网络层 ,传输层 ,会话层, 表示层, 应用层。
(2)TCP/IP四层模型
主机至网路层 , 网际层 ,传输层,应用层。
1.UDP特点
(1)将数据及源和目的封装成数据包中,不需要建立连接。
(2)每个数据包的大小限制在64K内。
(3) 因无连接,是不可靠协议。
(4) 不需要建立连接,速度快。
例如:生活中去邮局寄东西(UDP),东西装盒子里(封包),写寄送地址(接收端口)天堂路到地狱街,没找到丢包。但是速度快,比你自己送过去快。 QQ,游戏等都是UDP。
2.TCP特点
(1)建立连接,形成传输数据的通道。
(2) 在连接中进行大数据量传输。
(3) 通过三次握手完成连接,是可靠协议。
(4) 必须建立连接,效率会稍低。
例如:下载是TCP。
4.练习:
1.UDP练习:
编写一个聊天程序。有收数据的部分,和发数据的部分。这两部分需要同时执行。那就需要用到多线程技术。一个线程控制收,一个线程控制发。因为收和发动作是不一致的,所以要定义两个run方法。而且这两个方法要封装到不同的类中。
代码图例:
2.TCP练习
演示tcp的传输的客户端和服务端的互访。
需求:客户端给服务端发送数据,服务端收到后,给客户端反馈信息。
代码图例:
3.TCP文本转换服务器
需求:建立一个文本转换服务器。
客户端给服务端发送文本,服务单会将文本转成大写在返回给客户端。
而且客户度可以不断的进行文本转换。当客户端输入over时,转换结束。
分析:
客户端:
既然是操作设备上的数据,那么就可以使用io技术,并按照io的操作规律来思考。
源:键盘录入。
目的:网络设备,网络输出流。
而且操作的是文本数据。可以选择字符流。
步骤
1,建立服务。
2,获取键盘录入。
3,将数据发给服务端。
4,后去服务端返回的大写数据。
5,结束,关资源。
都是文本数据,可以使用字符流进行操作,同时提高效率,加入缓冲。
代码图例:
4.TCP上传文本文件