以下是我个人知识点的总结,比较零散。
1、IP地址:(唯一) 网络上的逻辑标识符 端口号一共有 (0~~~~~2^16-1)个
2、套接字 UDP套接字(比较不可靠---->相对于TCP/IP套接字)
3、TCP/IP套接字必须要服务器存在 UDP套接字可以直接发、速度块 、效率不保证。
4、DNS域名解析服务器
5、获取IP地址,InetAddress 方法获得: ip
6、服务器套接字 ServerSocket server=new SreverSocket(9090(端口号));
7、Socket socket=server.accept(); //等待用户连接 阻塞 有等待功能 阻塞功能!!!
8、InputStream is=socket.getInputStream(); redLine(); //会卡程序 阻塞状态
socket.shutdownInput(); 关闭流
9、 客户端 Socket socket=new Socket(“localhost”(网络地址),9090(端口号));
10、输出流 OutputStream os=socket.getOutputStream();
11、PrintWriter pw=new PrintWriter(os);
12、pw.write(""); //发消息
13、pw.flush(); //清空缓冲区 为了效率(保险,为了能成功发送)
14、UDP 点对点的传输,不分级别上的区别(即部分客户端和服务器)
15、DatagramSocket data=new DatagramSocket(端口号);
16、DatagramPacket packet=new DatagramPacket(byte[],byte.length); //空包裹
17、收信息 数据在byte数组里面 socket.receive(packet);
18、拆包裹 String info=new String(buf,o,packet.getLength());
19、发包裹 socket.send(); //信息都在包裹上
20、DatagramPacket packet=new datagramPacket(byte[],length,InetAddress(对象),(端口号));
**
附加部分内容
**
**
Socket套接字:
**
网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。
Socket原理机制:
1、通信的两端都有Socket。
2、网络通信其实就是Socket间的通信。
3、数据在两个Socket间通过IO传输。
附加部分面试题:
启动一个线程是run()还是start()?它们的区别?
启动一个线程是start();
run():封装了被线程执行的代码,直接调用仅仅是普通方法的调用
start():启动线程,并由JVM自动调用run()方法
sleep()和wait()方法的区别?
sleep():必须指时间;不释放锁。
wait():可以不指定时间,也可以指定时间;释放锁。
为什么wait(),notify(),notifyAll()等方法都定义在Object类中?
因为这些方法的调用是依赖于锁对象的,而同步代码块的锁对象是任意锁。
而Object代码任意的对象,所以,定义在这里面。
**
TCP与UDP的比较:
**
- TCP需要建立连接,UDP发送前不需要建立连接。
- TCP提供可靠传输服务,UDP不保证可靠的交付服务。
- TCP面向数据是字节流,UDP面向的是报文无拥塞控制,实时性高于TCP。
- TCP是点对点的,UDP可支持一对一、一对多、多对一、多对多的交互通信。
- TCP的通信信道是全双工的可靠信道,UDP则是不可靠信道。
- TCP首部长度为20字节,UDP则为8个字节。