1.IP地址
(1)InetAdderss
了解了IP地址的作用,我们看学习下JDK中提供了一个InetAdderss类,该类用于封装一个IP地址,并提供了一系列与IP地址相关的方法,下表中列出了InetAddress类的一些常用方法。
public class Example01 {
public static void main(String[] args) throws Exception {
InetAddress local = InetAddress.getLocalHost();
InetAddress remote = InetAddress.getByName("www.itcast.cn");
System.out.println("本机的IP地址:" + local.getHostAddress());
System.out.println("itcast的IP地址:" + remote.getHostAddress());
System.out.println("itcast的主机名为:" + remote.getHostName());
}
}
2.UDP网络编程
UDP传输就像是发快递
包裹:要寄出去的物品+收货人的地址和门牌号
快递站:转发包裹
包裹:
转发包裹:
发送的过程:
对于快递,把要发送的物品装箱,并且填写快递单上的收件人的地址和门牌号.。然后,由快递站寄出去。对于网络通信,要先构造数据包,并且要在包上指定要接收端的IP和端口号。
接收的过程:
接收比较简单,你要保证快递员送过来的时候打开你家的门,让快递员送过来。当然,通过阅读快递单,你也可以知道寄件人的地址和门牌号。对于网络通信,接收只要保证打开自己的端口接收即可,也可以通过数据包获得发送方的IP和端口号
3TCP网络编程
TCP分客户端和服务器端,关键是了解流向
客户端流出
服务器端流入
服务器端流出
客户端流入
4.案例练习:多线程客户端文件上传到服务器端:
分析:每一个客户端传过来一个socket,服务器端开辟多个线程,给每一个socket分配一个线程。
客户端发送图片流,接收字节流
服务器端接收客户端socket,然后为每一个socket开辟一个线程
线程对接收到的套接字进行处理,并且给客户端发送上传成功的提醒