1、
1)IP地址和端口号
IP地址:用于识别网络中的通信实体,通信实体可以理解为是一台主机,也可以理解成是一台远程打印机,或者是路由器中的某一个端口。现在基于ip协议的网络中,传输的数据必须使用ip地址进行标识。每一个被传输的数据包都包括一个原ip和目标ip。
端口号:一个通信实体可以同时有多个通信程序,同时提供网络服务。这时候就需要通过端口号区分开具体的通信程序。一个通信实体不能有两个通信程序使用同一个端口号。
2)tcp/udp协议
tcp:面向连接的可靠传输的协议,通过tcp进行数据传输,得到的是一个顺序的无差错的数据流,它能够提供两台计算机之间的可靠数据传输。如http、ftp这些应用程序都是基于tcp的可靠传输通信。
udp:是一个无连接的协议。每个数据包都是一个独立的信息,包括完整的源地址和目标地址,它在网络上可以通过任何的途径传输到目的地。至于能否达到目的地、达到目的地的时间以及内容的准确性,它是不能保证的。这是udp和tcp最大的不同之一。
既然有了可靠的传输协议,为什么还要有不可靠的传输协议呢?主要是可靠的传输协议是有代价的,根据内容的时间和内容的检验,必然会占用计算机处理时间和网络时间,这样tcp不然udp的传输效率高。还有就是很多应用程序并不需要保证数据的正确性
3)URL:代表的是统一的资源定位器,指向的是互联网中的任何一个资源。
4)InetAddress : 其实是java提供的一个代表ip地址的一个类
2、
1)创建socket实例
2)
3)
4)
2、
3、
4、
5、NIO
工作原理:①有一个专门的线程来处理所有的io事件
②同时又是事件驱动机制的,当事件到来的时候会被触发,而不是同步地去揭示事件
③有线程间的通信机制,线程间是通过wait和notify这种方式进行通讯的,保证每次上下文切换都是有意义的,这样减少了无谓的线程切换,提高了线程的使用率
6、
7、
8、
9、
10、