网络编程-----未完结

网络编程-----未完结,第1张

网络编程的三要素

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

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

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

网络模型1··OSI参考模式:开放系统互连参考模型(Open System Interconnect)

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

二、IP地址

1、IP地址的表示方法

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

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

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

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

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

2、IP地址的分类

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

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

▪· IP 地址类包括:

3、特殊的IP:

▪· 0.0.0.0:本机

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

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

4、IP地址所对应的对象InetAddress

▪·端口:port

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

2、传输协议:

UDP:相当于収短信(有字数限制),

        不需要建立连接,

        数据报的大小限制在64k内,

        效率较高,不安全,容易丢包

TCP:相当于打电话,

        需要建立连接,

        效率相对比较低,

        数据传输安全,

        三次握手完成。 (点名答到确认)

3、Socket套接字

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

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

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

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

基于TCP协议的Socket编程

 

 

代码如下:

/**
 * @Author: Zx lan
 * @Date: 2022/4/28  8:08
 *
 *   客户端
 */
public class Client1 {
    public static void main(String[] args) throws IOException {
        //获取Socket对象
        Socket client = new Socket("192.168.43.173",10000);
        //从socket中获取输出流
        /*******************向服务区发送一条消息***********************/
        OutputStream outputStream = client.getOutputStream();
        outputStream.write("你好,服务器,我是客户端".getBytes());

        /*******************接收服务响应消息***********************/
        InputStream inputStream = client.getInputStream();
        //读取服务器响应回来的数据
        byte[] buffer = new byte[1024];
        int length = inputStream.read(buffer);
        System.out.println("服务器说" + new String(buffer,0,length));

        //关闭资源
        inputStream.close();
        outputStream.close();
        client.close();

    }
}

/**
 * @Author: Zx lan
 * @Date: 2022/4/28  8:08
 * 
 * 服务器
 */
public class Server1 {
    public static void main(String[] args) throws IOException {
        //创建serverSocket对象
        ServerSocket serverSocket = new ServerSocket(10000);
        System.out.println("*************服务器已开启...**************");
        //开启监听
        Socket server = serverSocket.accept();
        /*******************接收服务区发送一条消息***********************/
        InputStream inputStream = server.getInputStream();
        byte[] buffer = new byte[1024];
        int length = inputStream.read(buffer);
        System.out.println("客户端说" + new String(buffer,0,length));
        /*******************服务器向客户端响应一条消息***********************/
        OutputStream outputStream = server.getOutputStream();
        //向客户端传输数据
        outputStream.write("我已受到你的消息,我是服务器".getBytes());

        //关闭资源
        outputStream.close();
        inputStream.close();
        server.close();
        serverSocket.close();
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/788760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存