网络编程

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

网络编程

网络通讯要素
  • IP地址(InetAddress)
    • 网络中设备的标识
    • 不易记忆,可用主机名
    • 本地回还地址:127.0.0.1 主机名:localhost
    • InetAddress 类常用方法:
    • static InetAddress getLocalHost() :返回本地主机IP地址和名称
    • static InetAddress getByName(String host) :返回指定主机的IP地址和名称
    • String getHostName() : 返回IP地址的主机名
    • String getHostAddress() :返回IP地址
  • 端口号
    • 用于标识进程的逻辑地址,不同进程的标识
    • 有效端口:0~65535,其中0~1024系统使用或保留端口。
  • 传输协议
    • 通讯规则
    • 常用协议有:TCP UDP
    • UDP(面向无连接)
      • 将数据及源和目的封装在数据包中,不需要建立连接
      • 每个数据包的大小限制在64K以内
      • 因无连接,是不可靠协议
      • 不需要建立连接,速度快
    • TCP(面向连接)
      • 建立连接,形成传输数据的通道
      • 在连接中进行大数据量传输
      • 通过三次握手完成连接,是可靠协议
      • 必须建立连接,效率会稍低
Socket
Socket就是为网络服务提供的一种机制
通信的两端都有Socket
网络通信其实就是Socket间的通信
数据在两个Socket间通过IO传输

UDP传输
  • 通过DatagramSocket建立发送端和接收端。
  • 通过DatagramPacket 建立数据包
  • 调用Socket的发送接收方法。
  • 关闭Socket
  • 发送端与接收端是两个独立的运行程序。
  • DatagramSocket
    • 此类用来表示接收发送数据报包的套接字。
    • 构造方法:
      • DatagramSocket()           构造数据报套接字并将其绑定到本地主机上任何可用的端口。
      • DatagramSocket(int port):   创建数据报套接字并将其绑定到本地主机上的指定端口。
    • 方法:
      • void receive(DatagramPacket p):  从此套接字接收数据报包。此方法是阻塞式方法。
      • void send(DatagramPacket p):      从此套接字发送数据报包。
  • DatagramPacket
    • 此类表示数据报包。
    • 数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。
    • 构造方法:
      • DatagramPacket(byte[] buf,int length):
      •  构造 DatagramPacket,用来接收长度为 length 的数据包。
      • DatagramPacket(byte[] buf, int length, InetAddress address, int port):
      •  构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。   
    • 方法:
      • InetAddress getAddress() : 返回指定机器的IP地址
      • byte[] getData() :返回数据缓冲区
      • int getLength() : 返回将要发送或接收到的数据的长度
      • int getPort() : 返回指定机器的端口号
TCP传输
  • 通过Socekt和ServerSocket建立客户端和服务器端
  • 建立连接后,通过Socket中的IO流进行数据的传输。
  • 关闭Socket
  • 客户端与服务端是两个独立的应用程序。
  • Socket
    • 此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器间通信的端点。
    • 构造方法:
      • Socket() : 通过系统默认类型的 SocketImpl 创建未连接套接字
      • Socket(InetAddress address , int port) : 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
      • Socket(String host , int port) : 创建一个流套接字并将其连接到指定主机上的指定端口号。
    • 方法:
      • void connect(SocketAddress endpoint) : 将此套接字连接到服务器。
      • InputStream getInputStream() :  返回此套接字的输入流。
      • OutputStream getOutputStream() : 返回此套接字的输出流。
  • ServeSocket
    • 此类实现服务器套接字。服务器套接字等待请求通过网络传入。它基于该请求执行某些操作,然后可能向请求者返回结
    • 构造方法:
      • ServerSocket(): 创建非绑定服务器套接字。
      • ServerSocket(int port):  创建绑定到特定端口的服务器套接字
    • 方法:
      • accept():侦听并接受到此套接字的连接。

URL
  • 类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。
  • 资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。
  • 方法:
    • String getProtocol():   获取此 URL 的协议名称
    • String getHost():  获取 此 URL 的 主机名(如果适用)。
    • String getFile():   获取 此 URL 的 文件名。
    • String getPath():   获取 此 URL 的 路径部分。
    • int getPort():  获取此URL的端口号。
    • URLConnection openConnection(): 返回一个URLConnection对象,它表示到URL所引用的远程对象的连接。














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值