一. 简单先介绍一下网络编程
1. 概念 :
通过网络IP连接起来,实现网络通信,数据传输的操作,就是网络编程
2. 实现 :
目前来说当前主要有两种实现的方法,TCP和UDP; 其中TCP需要划分客户端和服务端,服务端需要等待客户端连接,数据传输稳定,而UDP则没有具体的划分,传输的数据只是传输过去了,对方收到没收到就不知道了
3. 计算机网络的分类:
局域网;
城域网;
广域网;
互联网;
等等;
注意,测试的时候,如果时两台电脑,要在同一个局域网内
4. 这里着重讲解一下UDP编程,TCP的教程都比较的多
二.了解一下UDP

  1. 用户数据协议,UDP是无通信协议,在发送数据时时不建立逻辑连接的,它的消耗资源小,通信效率高,通常用于传输音频,视频等
  2. 使用UDP编程时,由于UDP的无面向性,不能保证数据的完整性,因此传输中哟啊的数据时也不建议使用UDP
  3. UDP的数据被限制在了64kb以内,超出这个范围就不能发送了

三. 了解一下端口
1.公用端口:0-1023
2.程序注册端口<可以调用的> : 1024-49151
3.动态,私有端口: 49152-65535
4. cmd查看端口 : netstat -ano

正式开始UDP编程

  1. 两个构造方法: DatagramSocket用于发送和接受数据报的套接字和DatagramPacket报的数据包表述数据

  2. DatagramSocket构造方法 :
    DatagramSocket(); 构造数据报套接字,并将其绑定到本地主机的任何的可用端口
    DatagramSocket(int po); 构造数据报的套接字,并将其绑定到本地主机的指定端口
    DatagramSocket(int po , InetAddress ss); 创建一个套接字,并将其绑定到指定本地地址上

  3. DatagramPacket构造方法 :
    DatagramPacket(byte[] buf , int a , int b); 构建一个DatagramPacket用于接受指定的长度的数据报包到缓冲区
    DatagramPacket(byte[] buf , int a , int b ,InetAddress address, int po); 构建一个用于发送指定长度的数据包到指定大的主机的指定端口上

  4. 常用方法摘要:
    byte[] getData() ; 获取数据包中的数据
    InetAddress getAddress() ; 返回该数据发送或接受数据包的计算机IP地址
    int getLength(); 返回要发送的数据的长度或接收到的数据的长度

  5. 上代码 : 代码上每一行都有注释,比较好理解

import java.io.*;
import java.net.*;public class UDPSetder {//发送方
public static void main(String[] args) throws IOException {//创建一个socketDatagramSocket socket = new DatagramSocket();//获取本地的IP地址InetAddress inet = InetAddress.getLocalHost();//需要发送的数据String a = "你好啊!,世界!";System.out.println(a);//转换成bytebyte[]  s = a.getBytes();//添加进数据报的数据包,用于发送指定长度到指定的IP的指定端口上DatagramPacket packet = new DatagramPacket(s, 0,s.length,inet,9090);socket.send(packet);//发送数据报socket.close();//清空缓存
}
}
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;public class UDPReceiver {public static void main(String[] args) throws Exception {//创建一个套接字,并且开放指定端口DatagramSocket socket = new DatagramSocket(9090);//创建socket类,//创建数据接受的数组byte[] s = new byte[2048];//创建一个包接受数据DatagramPacket sv = new DatagramPacket(s, 0,s.length);//阻塞式接收socket.receive(sv);//转换成字符串并输//getdata()是返回数据包中的数据String msg = new String (sv.getData(),0,sv.getLength());System.out.println(msg);//释放资源socket.close();
}
}

Java网络编程UDP编程相关推荐

  1. 菜鸟学习笔记:Java提升篇10(网络2——UDP编程、TCPSocket通信、聊天室案例)

    菜鸟学习笔记:Java提升篇10(网络2--UDP编程.TCPSocket通信) UDP编程 TCP编程(Socket通信) 单个客户端的连接 多个客户端的连接(聊天室案例) UDP编程 在上一篇中讲 ...

  2. 网络编程——TCP网络编程UDP编程

    1.计算机网络:将分布在不同区域不同地方的多台计算机和网络设备通过线程连接起来组成一套大型系统,来实现计算机之间的信息传递和资源共享的设备. 2.网络编程:编写一个程序来实现网络间信息传递. 网络编程 ...

  3. java 网络通讯_JAVA编程实现TCP网络通讯的方法示例

    本文实例讲述了JAVA编程实现TCP网络通讯的方法.分享给大家供大家参考,具体如下: TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字 ...

  4. 原生JAVA的TCP/UDP编程

    一.TCP/UDP对比 二.TCP编程 TCP字节流编程 - Server端: public class TCPServerStream {public static void main(String ...

  5. java网络编程 个人心得

    TCP协议是一个有连接可靠地协议. TCP编程的核心思路 开发服务器端 ServerSocket ss=new ServerSocket(9000) ss.accept();       public ...

  6. 菜鸟学习笔记:Java提升篇9(网络1——网络基础、Java网络编程)

    菜鸟学习笔记:Java提升篇9(网络1--网络基础.Java网络编程) 网络基础 什么是计算机网络 OS七层模型 Java网络编程 InetAddress InetSocketAddress URL类 ...

  7. Java TCP/UDP编程

    java TCP & UDP编程 UDP编程 TCP编程 UDP编程 UPD: User Datagram Protocol.面向无连接,不安全. UDP中,发送方无需知道接收方是否接受,只考 ...

  8. 【Java网络编程(一)】IP地址、端口、URL、网络爬虫原理、TCP UDP协议

    IP地址与域名的获取 package cn.hanquan.test;import java.net.InetAddress; import java.net.UnknownHostException ...

  9. java网络编程作业基于UDP简单聊天窗口,图形化界面,包含客户端和服务端

    //郑州轻工业大学 //题号:实验四 第二题 //题目:使用基于UDP的网络编程方法,完成客户端和服务器间的聊天功能.要求图形界面. java网络编程作业 基于UDP简单聊天窗口,图形化界面,包含客户 ...

最新文章

  1. Windows注册文件类型信息的学习心得
  2. java 找不到符号变量_java编程找不到符号
  3. promise是什么?简单分析promise原理
  4. php基础教程文档,PHP5基础教程
  5. 1.1-1.5-vim编辑器
  6. postgres 支持的线程数_线程池被打满了怎么处理呢,你是否真的了解线程池?
  7. leetcode动态规划(python与c++)
  8. 飞鸽传书为什么传书?
  9. labview小波包分解
  10. 详解apply的用处
  11. nrr评分预测_NRR的完整形式是什么?
  12. android 离散分布控件,Android自定义睡眠质量分布控件
  13. 基于 CPG 神经网络的下肢康复外骨骼机器人
  14. Gitblit服务器搭建及Git使用
  15. Python图像处理:使用TensorFlow或Keras进行图像分类
  16. P2676 [USACO07DEC]Bookshelf B(随缘学习)
  17. 项目施工阶段的BIM主流应用,主要集中在哪些环节?
  18. 文盘Rust -- 子命令提示,提高用户体验
  19. Pyspider基本介绍
  20. pytorch改变图片格式顺序

热门文章

  1. 什么是ip代理?如何选择ip代理?ip代理哪家好?
  2. docker registry http api v2(原创请注明出处)
  3. linux文件删除 能恢复出厂设置密码,OpenWrt固件通过reset键恢复出厂设置步骤
  4. 管理者应该会讲的68个超级经典小故事
  5. 老电脑拯救计划——将机械盘的系统迁移到SSD
  6. Echarts之双横向柱状对比图
  7. 【Python】实现模拟股票交易的虚拟盘小工具(巴菲特模拟器)
  8. 用 Python 中的蒙特卡洛模拟预测股票收益
  9. 牛刀小试基本语法,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本语法和变量的使用EP02
  10. linux下 postgresql 安装 postgis 拓展