4.14日网络编程学习

这篇具有很好参考价值的文章主要介绍了4.14日网络编程学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.网络编程三要素

1.IP地址:

IP地址:指互联网协议地址(Internet Protocol Address),俗称IP。要想使网络中的计算机能够进行通信,必须为每台计算机指定一个标识号,通过这个标识号来指定接受数据的计算机或者发送数据的计算机。

在TCP/IP协议中,这个标识号就是IP地址,它可以唯一标识一台计算机,目前,IP地址广泛使用的版本是IPv4,它是由4个字节大小的二进制数来表示,如:00001010000000000000000000000001。由于二进制形式表示的IP地址非常不便记忆和处理,因此通常会将IP地址写成十进制的形式,每个字节用一个十进制数字(0-255)表示,数字间用符号“.”分开,如 “192.168.1.100”。

随着计算机网络规模的不断扩大,对IP地址的需求也越来越多,IPV4这种用4个字节表示的IP地址面临枯竭,因此IPv6 便应运而生了,IPv6使用16个字节表示IP地址,它所拥有的地址容量约是IPv4的8×1028倍,达到2128个(算上全零的),这样就解决了网络地址资源数量不够的问题。

说白了,IP其实就是每个设备在网络中的编号

2.端口:

网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程,那么在网络通信时,如何区分这些进程呢?

如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的进程(应用程序)了。

3.网络通信协议

提到传输层的两个重要的高级协议,分别是UDP和TCP,其中UDP是User Datagram Protocol的简称,称为用户数据报协议,TCP是Transmission Control Protocol的简称,称为传输控制协议。

2.首先来进行IP的学习

想要对IP进行操作,就避不开要用InetAdress这个类

import java.net.InetAddress;
import java.net.UnknownHostException;

public class inetaddress {
    public static void main(String[] args) throws UnknownHostException {
        //1.获取inetAddress对象
          //IP的对象,也可以说是一台电脑的对象
        InetAddress address=InetAddress.getByName("192.168.50.155");
        //DESKTOP-D4I5DGV   电脑名
        InetAddress address1=InetAddress.getByName("DESKTOP-D4I5DGV");
        System.out.println(address1);


        //获取主机名
        String s=address.getHostName();
        System.out.println(s);

        //返回文本中显示的IP字符串(获取电脑对象的IP)
        String str=address.getHostAddress();
        System.out.println(str);

    }
}

3.UDP

1.UDP的发送信息

步骤:1.创建对象

            2.打包数据

           3.发送数据

           4.清除缓存

public class SendTest {
    //发送数据
    public static void main(String[] args) throws IOException {
        //1.创建对象
        DatagramSocket ds=new DatagramSocket();

        //2.打包数据
        Scanner sc=new Scanner(System.in);
        while (true) {
            String str=sc.nextLine();
            if("886".equals(str)){
                break;
            }
            byte[] bytes=str.getBytes();

            InetAddress ia=InetAddress.getByName("127.0.0.1");

            int port=10086;

            DatagramPacket dp=new DatagramPacket(bytes,bytes.length,ia,port);

            //3.发送数据
            ds.send(dp);
        }

        //4.清除缓存
        ds.close();
    }
}

2.UDP的接受消息

步骤:

1.创建对象

2.接受消息

3.解压消息

4.释放内存

public class ReceiveTest {
    public static void main(String[] args) throws IOException {
        //接受数据
        //1.创建对象
        DatagramSocket ds=new DatagramSocket(10086);

        //2.接受数据
        byte[] bytes=new byte[1024];
        DatagramPacket dp=new DatagramPacket(bytes, bytes.length);
        //while (true) {
            ds.receive(dp);

            //3.解压数据
            byte[] data= dp.getData();
            int len= dp.getLength();
            InetAddress ia=dp.getAddress();
            int port=dp.getPort();

            System.out.println(new String(data,0,len));
//            System.out.println(ia);
//            System.out.println(port);
        //}

        //4.释放内存
        ds.close();
    }
}

4.UCP

考察的主要是服务器与客户端,因此我们需要做一个服务器与客户端文章来源地址https://www.toymoban.com/news/detail-852443.html

1.客户端

public class Client {
    //TCP协议客户端,用来发送数据
    public static void main(String[] args) throws IOException {
        //1.创建socket对象
        //细节:在创建对象的同时,会连接服务器,如果连接不上,则报错
        Socket socket=new Socket("127.0.0.1",10006);//服务器的IP,以及链接的端口


        //2.从连接通道中获取输出流
        OutputStream os=socket.getOutputStream();
        //写出数据
        os.write("你好".getBytes());

        //3.释放资源
        os.close();
        socket.close();
    }
}

2.服务器 

public class Server {
    //TCP协议服务端,用于接受消息
    public static void main(String[] args) throws IOException {
        //1.创建服务器 ServerSocket
        //链接的端口必须与用户端一致
        ServerSocket ss=new ServerSocket(10006);


        //2.监听客户端链接
        Socket socket=ss.accept();


        //3.从连接通道中获取输入流,读取数据
        InputStream is=socket.getInputStream();
        //用转换流,将字节流变成字符流
        InputStreamReader isr=new InputStreamReader(is);
        int b;
        while(((b=isr.read()))!=-1){
            System.out.print((char)b);
        }

        //4.释放资源
        socket.close();
        ss.close();
    }
}

到了这里,关于4.14日网络编程学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux网络编程】网络编程套接字(TCP服务器)

    作者:爱写代码的刚子 时间:2024.4.4 前言:本篇博客主要介绍TCP及其服务器编码 只介绍基于IPv4的socket网络编程,sockaddr_in中的成员struct in_addr sin_addr表示32位 的IP地址 但是我们通常用点分十进制的字符串表示IP地址,以下函数可以在字符串表示和in_addr表示之间转换 字符串转in

    2024年04月14日
    浏览(53)
  • 网络编程(一)TCP单进程服务器编程详解

    想要学习socket网络编程的读者一定要首先学好计算机网络的理论知识,包括 1)osi网络七层模型与ip四层模型 2)套接字含义 3)局域网通信过程 4)广域网通信过程 5)tcp,udp通信协议,在这两个协议中的连接建立,数据封装,传输过程,传输中可能遇到的问题的处理(差错控

    2024年02月15日
    浏览(34)
  • 【网络编程】demo版UDP网络服务器实现

    在上一章【网络编程】socket套接字中我们讲述了TCP/UDP协议,这一篇就是简单实现一个UDP协议的网络服务器。 我们也讲过其实 网络通信的本质就是进程间通信 。而进程间通信无非就是读和写(IO)。 所以现在我们就要写一个服务端(server)接收数据,客户端(client)发送数据

    2024年02月02日
    浏览(36)
  • 【网络编程】demo版TCP网络服务器实现

    UDP和TCP的区别: 对于TCP协议有几个特点: 1️⃣ 传输层协议 2️⃣ 有连接(正式通信前要先建立连接) 3️⃣ 可靠传输(在内部帮我们做可靠传输工作) 4️⃣ 面向字节流 对于UDP协议有几个特点: 1️⃣ 传输层协议 2️⃣ 无连接 3️⃣ 不可靠传输 4️⃣ 面向数据报 可以看到

    2024年02月06日
    浏览(42)
  • 网络编程: 服务器百万连接实现

    实验内容: 用三个客户端与服务器建立百万连接 服务器代码: Reactor 将实验遇到的问题记录如下 一个TCP连接叫做TCP控制块(tcp control block)。区分网络连接的五元组元素有 添加功能 增加服务器监听端口 如果服务器只用一个端口,那么至少需要10e6/(2^16-1024) ≈ 16台虚拟机。(能分

    2024年01月20日
    浏览(36)
  • Java 网络编程 —— 创建多线程服务器

    一个典型的单线程服务器示例如下: 服务端接收到一个客户连接,就与客户进行通信,通信完毕后断开连接,然后接收下一个客户连接,假如同时有多个客户连接请求这些客户就必须排队等候。如果长时间让客户等待,就会使网站失去信誉,从而降低访问量。 一般用并发性

    2024年02月02日
    浏览(36)
  • 网络编程 lesson6 服务器模型和网络超时检测

    目录 服务器模型介绍 网络编程服务器模型 循环服务器模型 并发服务器模型 1. 多线程服务器 2. 多进程服务器 3. 事件驱动服务器 网络超时检测 应用场景 设置超时检测的方式 1.利用函数参数设置 代码示例 2.利用socket属性设置 3.利用alarm定时器设置 代码示例 在网络模型中,服

    2024年02月06日
    浏览(33)
  • linux并发服务器 —— linux网络编程(七)

    C/S结构 - 客户机/服务器;采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互;C/S结构中,服务器 - 后台服务,客户机 - 前台功能; 优点 1. 充分发挥客户端PC处理能力,先在客户端处理再提交服务器,响应速度快; 2. 操作界面好看,满足个性化需求; 3.

    2024年02月09日
    浏览(61)
  • 【网络编程】高性能并发服务器源码剖析

      hello !大家好呀! 欢迎大家来到我的网络编程系列之洪水网络攻击,在这篇文章中, 你将会学习到在网络编程中如何搭建一个高性能的并发服务器,并且我会给出源码进行剖析,以及手绘UML图来帮助大家来理解,希望能让大家更能了解网络编程技术!!! 希望这篇文章能

    2024年04月15日
    浏览(39)
  • 【skynet】 网络编程之回显服务器

    skynet 提供了一套 tcp 的 API ,本文将给出简单的回显服务器实现,以及讲解。 拉取 skynet 工程 编译 负责启动 gate 服务 \\\"L\\\" 表示客服端的消息前带四字节大端序的 msg_size skynet.address(skynet.self()) 把自己设置为 watchdog ,有新连接通过 text 消息告诉自己 port TCP 监听端口 0 将 TCP 数据

    2024年04月25日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包