Java基础知识强化之网络编程笔记04:UDP之发送端的数据来自于键盘录入案例

1. 数据来自于键盘录入

键盘录入数据要自己控制录入结束。

2. 代码实现:

(1)发送端:

 1 package com.himi.updDemo1;
 2
 3 import java.io.IOException;
 4 import java.net.DatagramPacket;
 5 import java.net.DatagramSocket;
 6 import java.net.InetAddress;
 7 import java.util.Scanner;
 8
 9 /**
10  *
11  * UDP协议发送数据:
12  * 1. 创建发送端的Socket对象
13  * 2. 创建数据,并把数据打包
14  * 3. 调用Socket对象的发送方法,发送数据包
15  * 4. 释放资源
16  *
17  */
18 public class UdpSendDemo {
19     public static void main(String[] args) throws IOException {
20         //创建发送端的Socket对象,这里使用的UDP使用的客户端的Socket对象类是DatagramSocket.
21         //DatagramSocket:DatagramSocket()
22         DatagramSocket ds = new DatagramSocket();
23
24         //创建数据,并把数据打包
25         //DatagramPacket:此类表示数据报包
26         /**DatagramPacket(byte[] buf, int length, InetAddress address, int port)
27         **         构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。
28         */
29
30         while(true) {
31         Scanner  sc = new Scanner(System.in);
32         String data = sc.nextLine();
33         if(data.equals("886")){
34             break;
35         }
36
37         byte[] bytes = data.getBytes();
38         //IP地址对象
39         InetAddress address = InetAddress.getByName("49.123.72.145");
40         //端口号
41         int port = 10086;
42         //数据打包
43         DatagramPacket dp = new DatagramPacket(bytes, bytes.length, address, port);
44
45
46         //调用Socket对象的发送方法,发送数据包
47         //public void send(DatagramPacket p)
48         ds.send(dp);
49
50         }
51         //释放资源
52         ds.close();
53
54     }
55
56 }

(2)接收端:

 1 package com.himi.updDemo1;
 2
 3 import java.io.IOException;
 4 import java.net.DatagramPacket;
 5 import java.net.DatagramSocket;
 6 import java.net.InetAddress;
 7
 8 /**
 9  *
10  * UDP协议接收数据:
11  * 1. 创建接收端的Socket对象
12  * 2. 创建数据包,接收数据(接收容器)
13  * 3. 调用Socket对象的接收方法,接收数据包
14  * 4. 解析数据包,并显示在控制台
15  * 5. 释放资源
16  *
17  */
18
19 public class UdpReceiveDemo {
20
21     public static void main(String[] args) throws IOException {
22         // 创建接收端的Socket对象
23         //DatagramSocket(int port):创建数据报套接字并将其绑定到本地主机上的指定端口
24         DatagramSocket ds = new DatagramSocket(10086);
25
26
27         while (true) {
28             // 创建数据包,接收数据(接收容器)
29             // DatagramPacket(byte[] buf, int length)
30             byte[] bytes = new byte[1024];
31             int length = bytes.length;
32
33             DatagramPacket dp = new DatagramPacket(bytes, length);
34
35             // 调用Socket对象的接收方法,接收数据包
36             // public void receive(DatagramPacket p)
37             ds.receive(dp);// 阻塞式方法
38
39             // 解析数据包,并显示在控制台
40             // 获取对方的IP
41             // public InetAddress getAddress()
42             InetAddress address = dp.getAddress();
43             String IP = address.getHostAddress();
44
45             // public byte[] getData():获取数据的缓冲区
46             // public int getLength():获取数据的实际长度
47             byte[] bys = dp.getData();
48             int len = dp.getLength();
49             String s = new String(bys, 0, len);
50
51             System.out.println("发送端" + IP + "的数据:" + s);
52         }
53
54         //释放资源
55         //ds.close();
56
57
58
59     }
60
61 }

运行效果如下:

时间: 2024-10-03 12:49:45

Java基础知识强化之网络编程笔记04:UDP之发送端的数据来自于键盘录入案例的相关文章

Java基础知识强化之网络编程笔记16:Android网络通信之 使用Http的Get方式读取网络数据(基于HTTP通信技术)

使用Http的Get方式读取网络数据,使用Get方式与网络通信是最常见的Http通信,建立链接之后就可以通过输入流读取网络数据. 详见:Android(java)学习笔记209:采用get请求提交数据到服务器(qq登录案例)

Java基础知识强化之网络编程笔记06:TCP之TCP协议发送数据 和 接收数据

1. TCP协议发送数据 和 接收数据 TCP协议接收数据:• 创建接收端的Socket对象• 监听客户端连接.返回一个对应的Socket对象• 获取输入流,读取数据显示在控制台• 释放资源 TCP协议发送数据: • 创建发送端的Socket对象• 这一步如果成功,就说明连接已经建立成功了.• 获取输出流,写数据• 释放资源 2. 代码实现: (1)发送端: 1 package cn.itcast_06; 2 3 import java.io.IOException; 4 import java

Java基础知识强化之网络编程笔记03:UDP之UDP协议发送数据 和 接收数据

1. UDP协议发送数据 和 接收数据 UDP协议发送数据: • 创建发送端的Socket对象 • 创建数据,并把数据打包 • 调用Socket对象的发送方法,发送数据包 • 释放资源  UDP协议接收数据:       • 创建接收端的Socket对象      • 创建数据包,接收数据(接收容器)      • 调用Socket对象的接收方法,接收数据包      • 解析数据包,并显示在控制台      • 释放资源 2. 代码实现 (1)首先我们先写发送端的程序,如下: 1 packag

Java基础知识强化之网络编程笔记18:Android网络通信之 使用HttpClient的Post / Get 方式读取网络数据(基于HTTP通信技术)

使用HttpClient进行Get方式通信,通过HttpClient建立网络链接,使用HttpGet方法读取数据,并且通过Response获取Entity返回值. 使用HttpClient进行Post方式通信,通过HttpClient建立网络链接,使用HttpPost方法传出数据与读取数据,传出和传入的数据都是Entity的子类. 详见:Android(java)学习笔记211:采用httpclient提交数据(qq登录案例)

Java基础知识强化之网络编程笔记19:Android网络通信之 HttpClient和传统Post、Get方式的区别

1. HttpClient是什么 ?     HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活. HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具

Java基础知识强化之网络编程笔记22:Android网络通信之 Android常用OAuth登录(获取个人信息)

1. 获取百度个人信息(使用Gson解析): 2. 代码案例: (1)工程一览图,如下: (2)activity_main.xml: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent

Java基础知识强化之网络编程笔记13:TCP之TCP协议上传图片并给出反馈

1. TCP协议上传图片并给出反馈: (1)客户端: 1 package cn.itcast_13; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.FileInputStream; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.net.Socket;

Java基础知识强化之网络编程笔记14:TCP之多个客户端上传到一个服务器的思考(多线程改进)

1. 多个客户端上传到一个服务器的思考 通过while循环可以改进一个服务器接收多个客户端. 但是这个是有问题的.如果是这种情况,假设我还有张三,李四,王五这三个人分别执行客户端  张三:好好学习.avi(100M) 256k  李四:天天向上.mp3(3M)   1M  王五:ILoveJava.txt(1k) 100M 这要等张三传完了,再去传李四…… 2. 使用多线程改进: (1)线程类UserThread: 1 package cn.itcast_15; 2 3 import java.

Java基础知识强化之网络编程笔记02:Socket通信原理图解

1. Socket (1)Socket套接字  网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字 (2)Socket原理机制:  • 通信两端都有Socket.  • 网络通信其实就是Socket间的通信.  • 数据在两个Socket间通过IO传输. 2.  Socket通信原理图解: