Java--网络

这篇博客介绍了网络编程的基础知识,包括网络的概念,网络编程的三要素:IP地址、端口号和通信协议。详细讲解了IP地址的表示方法、分类,特别强调了特殊IP地址的含义。此外,还提到了端口的作用以及TCP和UDP两种传输协议的特点。最后,讨论了Java中Socket套接字在TCP协议编程中的应用。
摘要由CSDN通过智能技术生成

网络的概念

▪ 网络:

一组相互连接的计算机

– 多台计算机组成

– 使用物理线路进行连接

–相互连接的计算机可以交换数据,共享资源。

网络编程的三要素

【1】IP地址:唯一标识网络上的每一台计算机 两台计算机之间通信的必备要素

【2】端口号:计算机中应用的标号(代表一个应用程序)   0-1024系统使用或保留端口,    有效端口0-65536

【3】通信协议:通信的规则 TCP,UDP

网络模型

▪ OSI参考模式:开放系统互连参考模型(Open System Interconnect)

▪ TCP/IP参考模型:传输控制/网际协议 Transfer Controln Protocol/Internet Protocol

IP地址的表示方法

▪ IP 地址:32位,由4个8位二进制数组成

▪ IP表示方法:点分十进制   

▪ IP地址 = 网络ID +主机ID

– 网络ID:标识计算机或网络设备所在的网段

– 主机ID:标识特定主机或网络设备 

IP地址的分类

▪ 地址类用于指定网络 ID 并在网络 ID 和主机 ID 之间提供分隔方 法

▪ IANA负责分配A、B、C类网络地址,具体主机地址由机构组织 自行分配 8位 24位

▪ IP 地址类包括:

– A 类  – B 类: – C 类: – D 类: – E 类:

特殊的IP地址

▪ 0.0.0.0:本机

▪ 127.0.0.1:本机回环地址,用于本机测试

▪ 255.255.255.255:当前子网,一般用于向当前子网广播信息

 IP地址所对应的对象  InetAddress

public class InetAddressDemo {
    public static void main(String[] args) throws UnknownHostException {
         InetAddress inetAddress = InetAddress.getLocalHost();
        System.out.println(inetAddress);
 
        InetAddress address = InetAddress.getByName("www.baidu.com");
        System.out.println(address);
        System.out.println(address.getHostName());
        System.out.println(address.getHostAddress());
    }
}

端口

▪ 端口:port 端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过 端口,可以在一个主机上运行多个网络应用程序。

传输协议 UDP:相当于収短信(有字数限制), 不需要建立连接, 数据报的大小限制在64k内, 效率较高,不安全,容易丢包 TCP:相当于打电话,需要建立连接, 效率相对比较低,数据传输安全, 三次握手完成。

Socket套接字

▪ 网络上的两个程序通过一个双向的通信连接实现数据的交换,

▪ 这个连接的一端称为一个socket。

▪ Java中使用Socket完成TCP程序的开収,使用此类可以方便的建立可靠 的、双向的、持续性的、点对点的通讯连接

▪ 在Socket的程序开収中,服务器端使用ServerSocket等待客户端的连接,

▪ 对于java的网络程序来讲,每一个客户端都使用一个Socket对象表示

基于TCP协议的Socket编程 – 进行网络通信时,Socket需要借助数据流来完成数据的传递工作

 * 服务区程序
 */
public class Server {
    public static void main(String[] args) throws IOException {
        //创建ServerSocket对象
       ServerSocket serverSocket = new ServerSocket(10086);
        System.out.println("******************服务器已开启。。。*******************");
        //开启监听
        Socket server = serverSocket.accept();
        //从socket对象中获取输入流
        InputStream inputStream = server.getInputStream();
        //使用DataInputStream包装流
        DataInputStream dataInputStream = new DataInputStream(inputStream);
        //读取从客户端发送过来的数据
        String s = dataInputStream.readUTF();
        System.out.println("客户端说:" + s);
        //关
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值