Java——网络编程

以下是我个人知识点的总结,比较零散。

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的比较:

**

  1. TCP需要建立连接,UDP发送前不需要建立连接。
  2. TCP提供可靠传输服务,UDP不保证可靠的交付服务。
  3. TCP面向数据是字节流,UDP面向的是报文无拥塞控制,实时性高于TCP。
  4. TCP是点对点的,UDP可支持一对一、一对多、多对一、多对多的交互通信。
  5. TCP的通信信道是全双工的可靠信道,UDP则是不可靠信道。
  6. TCP首部长度为20字节,UDP则为8个字节。

TCP/IP 协议的分层

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值