了解最新公司动态及行业资讯
要学习Java的网络,必须要先了解通信网络,通信网络是一个很大的领域,本文只进行粗略的简介,详细的可进行单项专业学习。
通信网络按覆盖范围分为局域网、城域网、广域网。局域网(LAN)。局域网是一种在小区域内使用的,由多台计算机组成的网络,覆盖范围通常局限在10 千米范围之内,属于一个单位或部门组建的小范围网;城域网(MAN)。城域网是作用范围在广域网与局域网之间的网络,其网络覆盖范围通常可以延伸到整个城市,借助通信光纤将多个局域网联通公用城市网络形成大型网络,使得不仅局域网内的资源可以共享,局域网之间的资源也可以共享;广域网(WAN) 广城网是一种远程网,涉及长距离的通信,覆盖范围可以是个国家或多个国家,甚至整个世界。由于广域网地理上的距离可以超过几千千米,所以信息衰减非常严重,这种网络一般要租用专线,通过接口信息处理协议和线路连接起来,构成网状结构,解决寻径问题。
设备之间的通信有特定的通信协议。常见的有TCP/IP协议、IPX/SPX协议、NetBEUI协议等,其中应用最广的是TCP/IP协议。
通讯协议一般采用七层模型,即应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
在Java支持TCP和UDP两种协议的实现。TCP是点对点的可靠通信,UDP是点到面的范围通信。
在TCP中,点对点的通信需要经历三次握手、四次挥手,示意图如下:
IP协议,分为IP4和IP6,区别如下:
InetAddress
常用方法 byte[] getAddress() 返回此 InetAddress 对象的原始 IP 地址。 static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址。 String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。 String getHostName() 获取此 IP 地址的主机名。 static InetAddress getLocalHost() 返回本地主机。 127.0.0.1:本机地址,主要用于测试。别名:LocalhostInetSocketAddress
常用方法摘要 InetAddress getAddress() 获取 InetAddress。 String getHostName() 获取 hostname。 int getPort() 获取端口号。 Socket常用方法摘要 public InputStream getInputStream() :返回此套接字的输入流。 如果此Scoket具有相关联的通道,则生成的InputStream 的所有操作也关联该通道。 关闭生成的InputStream也将关闭相关的Socket。 public OutputStream getOutputStream() :返回此套接字的输出流。 如果此Socket具有相关联的通道,则生成的OutputStream 的所有操作也关联该通道。 关闭生成的OutputStream也将关闭相关的Socket。 public void close() :关闭此套接字。 一旦一个socket被关闭,它不可再使用。 关闭此socket也将关闭相关的InputStream和OutputStream 。 public void shutdownOutput() :禁用此套接字的输出流。 任何先前写出的数据将被发送,随后终止输出流。ServerSocket
常用方法摘要 public Socket accept() :侦听并接受连接,返回一个新的Socket对象,用于和客户端实现通信。该方法会一直阻塞直到建立连接。URL
常用方法摘要 String getProtocol()获取此 URL的协议名称。 String getHost() 获取此 URL 的主机名。 int getPort() 获取此 URL 的端口号。 String getPath() 获取此 URL 的文件路径。 String getFile()获取此 URL 的文件名。 String getQuery()获取此 URL的查询部分。 URLConnection openConnection() 返回一个URLConnection实例,表示与URL引用的远程对象的URL 。