一、基础知识
1.TCP
2.UDP
二、IP地址封装
1.InetAddress类的常用方法
getLocalHost() 返回本地主机的InetAddress对象 InetAddress类型 getByName(String host) 获取指定主机名称的IP地址 InetAddress类型 getHostName() 获取此主机名 String getHostAddress() 获取主机IP地址 String isReachable(int timeout) 在timeout指定的毫秒时间内,测试IP地址是否可达 Boolean
2.示例1:测试IP地址从“192.168.131.1”到“192.168.131.150”范围内所有可以访问的主机的名称,如果对方没有安装防火墙,并且网络连接正常的话,都可以访问的。从输出可以看出,192.168.131.1是本地主机的IP,其他地址都不能联通,可能是因为1000毫秒太短或者对方主机装有防火墙的原因。
package bigjunoba.bjtu.iptoname; import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; public class IPToName { public static void main(String[] args) { String IP = null; for (int i = 1; i <= 150; i++) { IP = "192.168.131." + i; //生成IP字符串 try { InetAddress host; host = InetAddress.getByName(IP); //获取IP封装对象 if (host.isReachable(1000)) { //用1秒的时间测试IP地址是否可达 String hostName = host.getHostName(); System.out.println("IP地址" + IP + "的主机名称是:" + hostName); } } catch (UnknownHostException e) { //捕获未知主机异常 e.printStackTrace(); } catch (IOException e) { //捕获输入输出异常 e.printStackTrace(); } } System.out.println("搜索完毕!"); } }
IP地址192.168.131.1的主机名称是:BigjunOba
搜索完毕!
三、套接字
套接字(Socket)是代表计算机之间网络连接的对象,用于建立计算机之间的TCP连接,使计算机之间可以建立连接并实现网络通信。
1.服务器端套接字
服务器端套接字是SercerSocket类的实例对象,用于实现服务器缓存。ServerSocket类将监视指定的端口,并建立客户端到服务器端套接字的连接,也就是客户负责呼叫任务。
(1)创建服务器端套接字
创建服务器端套接字可以使用4中构造方法。
①ServerScoket()
默认构造方法,可以创建未绑定端口号的服务器套接字。服务器套接字的所有构造方法都需要处理IOException异常。
一般格式为:
try { ServerSocket server = new ServerSocket(); } catch (IOException e) { e.printStackTrace(); }
②ServerScoket(int port)
try { ServerSocket server = new ServerSocket(9527); } catch (IOException e) { e.printStackTrace(); } }
③
try { ServerSocket server = new ServerSocket(9527, 300); } catch (IOException e) { e.printStackTrace(); } }
④
try { ServerSocket server = new ServerSocket(9527, 300); } catch (IOException e) { e.printStackTrace(); } }
(2)创建接收套接字连接
2.客户端套接字
(1)创建客户端套接字
(2)发送和接收数据
四、数据报
1.DatagramPacket
2.DatagramSocket
五、网络聊天程序开发
原文:https://www.cnblogs.com/BigJunOba/p/9016769.html