黑马程序员---网络编程

---------------------- android培训java培训、期待与您交流! ----------------------

一.IP地址
 每个设备在网络中的唯一标识
 每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址。
 ipconfig:查看本机IP
 ping:测试连接
 本地回路地址:127.0.0.1 255.255.255.255是广播地址
 IPv4:4个字节组成,4个0-255。大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽。
 IPv6:8组,每组4个16进制数。
 1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f
 1a2b::aaaa:0000:0000:0000:aabb:1f2f
 1a2b:0000:aaaa::aabb:1f2f
 1a2b:0000:aaaa::0000:aabb:1f2f
 1a2b:0000:aaaa:0000::aabb:1f2f
二.端口号
 每个程序在设备上的唯一标识
 每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上,还要明确发到哪个程序。
 端口号范围从0-65535
 编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被系统程序占用了。
 常用端口
 mysql: 3306
 oracle: 1521
 web: 80
 tomcat: 8080
 QQ: 4000
 feiQ: 2425
三.网络协议
 为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
 UDP
 面向无连接,数据不安全,速度快。不区分客户端与服务端。
 TCP
   面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。
四.Socket
 通信的两端都有Socket。
 网络通信其实就是Socket间的通信。
 数据在两个Socket间通过IO流传输。
 Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和port。
五.UDP传输
 1.发送
 创建DatagramSocket, 随机端口号
 创建DatagramPacket, 指定数据, 长度, 地址, 端口
 使用DatagramSocket发送DatagramPacket
 关闭DatagramSocket
 2.接收
 创建DatagramSocket, 指定端口号
 创建DatagramPacket, 指定数组, 长度
 使用DatagramSocket接收DatagramPacket
 关闭DatagramSocket
 从DatagramPacket中获取数据
 3.接收方获取ip和端口号
 String ip = packet.getAddress().getHostAddress();
 int port = packet.getPort();
六.UDP和TCP的区别
 1.UDP
  面向无连接, 数据不安全, 速度快. 不区分服务端和客户端.
 2.TCP
  面向连接, 三次握手, 数据安全. 区分服务端和客户端.
  三次握手: 客户端先向服务端发起请求, 服务端响应请求, 传输数据
七.TCP传输
 1.客户端
  创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应的服务器
  调用Socket的getInputStream()和getOutputStream()方法获取和服务端相连的IO流
  输入流可以读取服务端输出流写出的数据
  输出流可以写出数据到服务端的输入流
 2.服务端
  创建ServerSocket(需要指定端口号)
  调用ServerSocket的accept()方法接收一个客户端请求,得到一个Socket
  调用Socket的getInputStream()和getOutputStream()方法获取和客户端相连的IO流
  输入流可以读取客户端输出流写出的数据
  输出流可以写出数据到客户端的输入流

---------------------- android培训java培训、期待与您交流! ----------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值