InetAddress 的使用
名称 | 说明 |
public static InetAddress getLocalHost() | 返回本主机的地址对象 |
public static InetAddress getByName(String host) | 得到指定主机的IP地址对象,参数是域名或者IP地址 |
public String getHostName() | 获取此IP地址的主机名 |
public String getHostAddress() | 返回IP地址字符串 |
public boolean isReachable(int timeout) | 在指定毫秒内连通该IP地址对应的主机,连通返回true |
端口号的作用是什么? 唯一标识正在计算机设备上运行的进程(程序)
一个设备中,能否出现2个应用程序的端口号一样,为什么? 不可以,如果一样会出现端口冲突错误。
UDP协议:
UDP是一种无连接、不可靠传输的协议。 将数据源IP、目的地IP和端口封装成数据包,不需要建立连接,每个数据包的大小限制在64KB内。
发送不管对方是否准备好,接收方收到也不确认,故是不可靠的 可以广播发送 ,发送数据结束时无需释放资源,开销小,速度快。 UDP协议通信场景 语音通话,视频会话等。
TCP
TCP是一种面向连接,安全、可靠的传输数据的协议 传输前,采用“三次握手”方式,点对点通信,是可靠的 在连接中可进行大数据量的传输。
TCP通信的客户端的代表类是谁? Socket类 public Socket(String host , int port)
TCP通信如何使用Socket管道发送、接收数据?
OutputStream getOutputStream():获得字节输出流对象(发)
InputStream getInputStream():获得字节输入流对象(收)
TCP通信服务端用的代表类? ServerSocket类,注册端口。
调用accept()方法阻塞等待接收客户端连接,得到Socket对象。
TCP通信的基本原理?
客户端怎么发,服务端就应该怎么收。 客户端如果没有消息,服务端会进入阻塞等待。
Socket一方关闭或者出现异常、对方Socket也会失效或者出错。
本次使用线程池的优势在哪里?
服务端可以复用线程处理多个客户端,可以避免系统瘫痪。 适合客户端通信时长较短的场景。