您的位置:首页 > 理论基础 > 计算机网络

黑马程序员———网络编程基础知识

2014-12-01 20:38 369 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


网络通讯要素:1找到对方IP127.0.0.1--->本地回环地址 localhost-->主机名IPv6:包含字母,可以排出无数的地址。

2数据要发送到对方指定的应用程序上。为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识。为了方便称呼这个数字,叫做端口。逻辑端口。有效端口:0~65535; 其中0~1024系统使用或保留端口。tomCat:8080端口

3定义通信规则。这个通讯规则称为协议。国际组织定义了通用协议TCP/IP。

--------------------------------------------------------------------------------------------

网络模型:OSI参考模型TCO/IP参考模型

OSI参考模型 | | TCP/IP参考模型------------- -------------- 应用层 | | ------------ 表示层 | | 应用层------------ 会话层 | |----------------------------------传输层 | | 传输层---------------------------------- 网络层
| | 网际层---------------------------------- 数据链路层 | | ------------- 主机至网络层物理层 | |----------------------------------

应用层:HTTP,FTP

传输层:TCP UDP网际层:IP协议 给数据加IP地址,

网络编程在传输层和网际层混,之后再考虑应用层。

------------------------------------------------------------------------------------------------

UDP:例子:对话机,qq聊天,视频会议,桌面共享,凌波客户端

1面向无连接2数据及源和目的被封包,且大小限制在64k内3不可靠,4速度快(土豆土豆,听到没听到没?)

TCP:相当于打电话,有反馈。下载,

1建立连接,形成传输数据的通道。2在连接中进行大数据量传输3通过三次握手完成连接,是可靠协议4必须建立连接,效率会稍低(喂,喂,在的,恩,。。。。)

------------------------------------------------------------------------------------------Socket:就是为网络服务提供的一种机制。用于描述IP地址和端口,是一个通信链的句柄。Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。
. getInputStream方法获得网络连接输入,同时返回一个IutputStream对象实例,。 . getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。 注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。

1就是为网络服务提供的一种机制。2通信的两端都有Socket。3网络通信其实就是Socket间的通信。4数据在两个Socket间通过IO传输

---------------------------------------------------------------------------------------------

UDP传输

DatagramSocket与DatagramPacket建立发送端,接收端。建立数据包。调用Socket的发送接收方法。关闭Socket。发送端与接收端是两个独立运行的程序。

DatagramPacket(byte[] buf,int length)

DatagramPacket(byte[] buf,int length,InetAddress address,int port)构造数据报包,用来将长度为length的包发送到指定主机上的指定端口号。

public final class DatagramPacketextends Object此类表示数据报包。

数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。

DatagramSocket:

public class DatagramSocketextends Object此类表示用来发送和接收数据报包的套接字。

数据报套接字是包投递服务的发送或接收点。每个在数据报套接字上发送或接收的包都是单独编址和路由的。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。

在 DatagramSocket 上总是启用 UDP 广播发送。为了接收广播包,应该将 DatagramSocket 绑定到通配符地址。在某些实现中,将 DatagramSocket 绑定到一个更加具体的地址时广播包也可以被接收。

示例:DatagramSocket s = new DatagramSocket(null); s.bind(new InetSocketAddress(8888)); 这等价于:DatagramSocket s = new DatagramSocket(8888); 两个例子都能创建能够在 UDP 8888 端口上接收广播的 DatagramSocket。

构造方法摘要 DatagramSocket() 构造数据报套接字并将其绑定到本地主机上任何可用的端口。 protected DatagramSocket(DatagramSocketImpl impl) 创建带有指定 DatagramSocketImpl 的未绑定数据报套接字。 DatagramSocket(int port) 创建数据报套接字并将其绑定到本地主机上的指定端口。
DatagramSocket(int port, InetAddress laddr) 创建数据报套接字,将其绑定到指定的本地地址。 DatagramSocket(SocketAddress bindaddr) 创建数据报套接字,将其绑定到指定的本地套接字地址。

--------------------------------------------------------------------------------------------------------

Telnet远程登录

构造方法摘要 URL(String spec) 根据 String 表示形式创建 URL 对象。 URL(String protocol, String host, int port, String file) 根据指定 protocol、host、port 号和 file 创建 URL 对象。 URL(String protocol, String host, int port, String file,
URLStreamHandler handler) 根据指定的 protocol、host、port 号、file 和 handler 创建 URL 对象。 URL(String protocol, String host, String file) 根据指定的 protocol 名称、host 名称和 file 名称创建 URL。 URL(URL context, String spec) 通过在指定的上下文中对给定的 spec 进行解析创建 URL。
URL(URL context, String spec, URLStreamHandler handler) 通过在指定的上下文中用指定的处理程序对给定的 spec 进行解析来创建 URL。

Object getContent(Class[] classes) 获取此 URL 的内容。 int getDefaultPort() 获取与此 URL 关联协议的默认端口号。 String getFile() 获取此 URL 的文件名。 String getHost() 获取此 URL 的主机名(如果适用)。 String getPath()
获取此 URL 的路径部分。 int getPort() 获取此 URL 的端口号。 String getProtocol() 获取此 URL 的协议名称。 String getQuery() 获取此 URL 的查询部分。

InputStream openStream() 打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。

URLConnection openConnection() 返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。 URLConnection openConnection(Proxy proxy) 与 openConnection() 类似,所不同是连接通过指定的代理建立;不支持代理方式的协议处理程序将忽略该代理参数并建立正常的连接。 =================================================

抽象类 URLConnection 是所有类的超类,它代表应用程序和 URL 之间的通信链接。此类的实例可用于读取和写入此 URL 引用的资源。通常,创建一个到 URL 的连接需要几个步骤:

openConnection() connect() 对影响到远程资源连接的参数进行操作。 与资源交互;查询头字段和内容。 ----------------------------> 时间通过在 URL 上调用 openConnection 方法创建连接对象。 处理设置参数和一般请求属性。 使用 connect 方法建立到远程对象的实际连接。 远程对象变为可用。远程对象的头字段和内容变为可访问。

构造方法摘要 protected URLConnection(URL url) 构造一个到指定 URL 的 URL 连接。

Object getContent() 获取此 URL 连接的内容。

InputStream getInputStream() 返回从此打开的连接读取的输入流。

OutputStream getOutputStream() 返回写入到此连接的输出流。

URL getURL() 返回此 URLConnection 的 URL 字段的值。

==========================

ServerSocketpublic ServerSocket(int port, int backlog) throws IOException

参数:port - 指定的端口;或者为 0,表示使用任何空闲端口。backlog - 队列的最大长度。

==========================

类 InetSocketAddress

构造方法摘要 InetSocketAddress(InetAddress addr, int port) 根据 IP 地址和端口号创建套接字地址。 InetSocketAddress(int port) 创建套接字地址,其中 IP 地址为通配符地址,端口号为指定值。 InetSocketAddress(String hostname, int port) 根据主机名和端口号创建套接字地址。
方法摘要 static InetSocketAddress createUnresolved(String host, int port) 根据主机名和端口号创建未解析的套接字地址。 boolean equals(Object obj) 将此对象与指定对象比较。 InetAddress getAddress() 获取 InetAddress。 String getHostName() 获取 hostname。 int
getPort() 获取端口号。 int hashCode() 返回此套接字地址的哈希码。 boolean isUnresolved() 检查是否已解析地址。 String toString() 构造此 InetSocketAddress 的字符串表示形式。

==========================================================

域名解析:

先访问本地,再访问DNS

获取IPInetAddress().getByName("www.sina.com.cn");

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: