栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

简单理解 java 网络编程——01(UDP实现)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单理解 java 网络编程——01(UDP实现)

一。(了解内容)贴上小生的一些学习笔记:

IPV4 4个字节表示唯一地址,每个字节的表示范围0~255

  • 查看IP地址 ipconfig
  • ip 地址=网络地址+主机地址
  • ipv6使用16个字节表示,一共128位
  • 按照冒分16进制表示法,所看到的16进制的IPV6表示,十个十个一隔开,16进制4位表示一个符号,每一组有两个字节
  • A类网络 最前面1位0固定,7位表示网络号,剩下的都表示主机号,可表示的主机数量比较多。
  • A B C 依次只有24 16 8位来表示主机号
  • A B C 类网络依次用1 2 3 位来表示一个网络号
  • 固定+网络号+主机号
  • 0
  • 10
  • 110
  • 1110 多播组号 广播地址
  • 127.0.0.1表示本机地址
  • 域名解决记忆困难的问题,将IP地址映射成域名
  • 端口号用于标识网络上某个特定的网络程序
  • 浏览器去访问 服务是 IP+端口号
  • 端口号: 0-65535 两个字节表示
  • 0-1024已经被占用,ssh 22,ftp21,smtp 25,http 80
  • tomcat 8080
  • mysql 3306
  • oracle 1521
  • sqlserver :1433
  • 在网络编程中,数据的组织形式就是协议。
  • TCP 传输控制协议
  • 1.先建立数据连接形成数据通道。
  • 2.传输前,采三次握手的方式
  • 3.TCP协议进行通信的两个进程,客户端,服务端
  • 4.在连接中进行大数据量的传输
  • 5.传输完毕,释放已经建立的链接
    *Socket 就是从主机传递到数据通道的一个媒介
二,正式篇(网络编程入门)
  1. IP地址:主机的唯一标识
  2. 端口: 主机上网络程序的唯一标识
  3. 协议: 在同一个网络中需要遵循的约定
三,UDP通信程序

UDP: 一种不可靠的传输协议
Socket:类似于插头,

发送数据的步骤:

  1. 建发送端的Socket对象
  2. 打包数据
  3. 调用第一步创建的对象发送数据
  4. 关闭发送端
发送端程序代码实现:
package com.tyj.cn.csdn._01;

import java.io.IOException;
import java.net.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class UDPsend {
    public static void main(String[] args) throws IOException {
//创建一个发送端Socket对象
        DatagramSocket udpsocket = new DatagramSocket();
        Scanner scanner = new Scanner(System.in);
        while (true){
            SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
            Date date = new Date(System.currentTimeMillis());
            System.out.print(formatter.format(date)+" ");
            System.out.println("请输入发送的消息:");
            String input = scanner.nextLine();
            if("999".equals(input)){
                break;
            }
            byte[] bytes = input.getBytes();
            DatagramPacket udoPacket = new DatagramPacket(bytes, bytes.length, InetAddress.getByName("192.168.12.49"), 9989);
            udpsocket.send(udoPacket);
        }
        udpsocket.close();
    }
}

接收端端程序代码实现:
package com.tyj.cn.csdn._01;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class UdpReceive {
    public static void main(String[] args) throws IOException {
//新建一个接收端的Socket对象
        DatagramSocket receiveSocket = new DatagramSocket(9989);
        while (true) {

            byte[] bytes = new byte[1024];
            DatagramPacket receivePacket = new DatagramPacket(bytes, 0, bytes.length);
            receiveSocket.receive(receivePacket);
            SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
            Date date = new Date(System.currentTimeMillis());
            System.out.print(formatter.format(date)+" ");
            System.out.println("接受到的数据是:"+new String(receivePacket.getData(), 0, receivePacket.getLength()));
        }
        
       
    }
}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021603.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号