`

网络编程【三】UDP键盘方式录入数据

    博客分类:
  • Java
阅读更多
本课是在网络编程【二】的基础上稍微修改。

运行效果图:
[img]

[/img]

第一,发送端:

import java.io.*;
import java.net.*;
/*
 需求:通过UDP传输方式,将一段文字传输出去。
 思路:
 1,简历udpsocket服务。
 2,提供数据,并将数据封装到数据包中。
 3,通过socket服务的发送功能,将数据包发出。
 4,关闭资源

 我的电脑的ip地址为:192.168.0.124,此测试是自己给自己发送数据,接受数据的端口号为:10000。

 */

public class UdpSend {

	public static void main(String[] args) throws Exception {

		// 1,创建socket服务,通过DatagramSocket对象,将发送端的端口设为:8888
		// 如果没有设置,系统会自动分配一个端口。
		DatagramSocket ds = new DatagramSocket(8888);

		// 2,确定数据,并封装成数据包

		BufferedReader bufr = new BufferedReader(new InputStreamReader(
				System.in));
		String line = null;

		while ((line = bufr.readLine()) != null) {
			if ("886".equals(line)) {
				break;
			}
			byte[] buf = line.getBytes();
			InetAddress	ia = InetAddress.getByName("192.168.0.124");
			DatagramPacket dp = new DatagramPacket(buf, buf.length, ia, 10000);
			// 3,通过socket服务,将已有的数据包发送出去。通过send方法
			ds.send(dp);

		}

		// 4,关闭资源
		ds.close();

	}

}




第二:接收端:
注意:不要把  DatagramSocket ds = new DatagramSocket(10000);这一行放入while循环中,否则会报绑定异常。

/*
需求:定义一个应用程序,用于接收UDP协议传输的数据并处理。


定义 udp接收端
思路:
一,定义udpsocket服务,通常会监听一个端口。
	其实就是给这个接收网络应用程序定义数字标识,方便明确哪些数据过来
	由该应用程序处理。

二,定义一个数据包,因为要存贮接收到的字节数据。
  因为数据包对象中有更多功能可以提取字节数据中的不同数据信息。

三,通过socket服务的receive方法将接收到的数据存入定义好的数据包中。

四,通过数据包对象的特有功能,将数据取出,并打印在控制台上。

五,关闭资源。

*/






import java.net.*;
public class Receive{
	public static void main(String[] args)throws Exception{
		// 1,创建udp socket 建立接收端点
		DatagramSocket ds = new DatagramSocket(10000);
		while(true){
			// 2,定义数据包,用于存储数据
			byte[] buf = new byte[1024];
			DatagramPacket dp = new DatagramPacket(buf,buf.length);
			// 3,通过服务的receive方法,将收到的数据存入数据包中
			ds.receive(dp);
			
			// 4,通过数据包的方法,获取其中的数据。
			//获得发送端的IP
			String ip = dp.getAddress().getHostAddress();
			//获得发送端的端口
			int port = dp.getPort();
			//获得发过来的数据
			String data = new String(dp.getData(),0,dp.getLength());
			
			/*
			System.out.println("ip====="+ip);
			System.out.println("data====="+data);
			System.out.println("port====="+port);
			*/

			System.out.println(ip+":"+port+"--->"+data);
		}
		// 5,关闭资源
		//ds.close();

	
	
	}



}



  • 大小: 46.3 KB
分享到:
评论

相关推荐

    09-网络编程(UDP-键盘录入方式数据).avi

    09-网络编程(UDP-键盘录入方式数据).avi

    零起点打开ja-va世界的大门视频-第二阶段视频-day12

    6. TCP通信程序练习:练习通常包括服务器端接收数据并给出反馈、客户端通过键盘录入数据发送给服务器等场景。这涉及到多线程处理,因为服务器可能同时服务于多个客户端,而客户端需要独立执行发送和接收操作。 7. ...

    vc++ 应用源码包_6

    非常好的一个实例,把网络连接的UDP/TCP都插入到CList控件中显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows核心编程(第五版)随书源代码 ...

    pywin32-auto-master

    3. UI自动化:通过模拟键盘和鼠标操作,自动完成窗口程序的交互,如测试自动化、数据录入等。 4. 日志监控:监控系统日志,自动报警或处理异常情况。 5. 数据备份:定时备份重要文件,确保数据安全。 三、PyWin32...

    vc++ 应用源码包_3

    非常好的一个实例,把网络连接的UDP/TCP都插入到CList控件中显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows核心编程(第五版)随书源代码 ...

    vc++ 应用源码包_1

    非常好的一个实例,把网络连接的UDP/TCP都插入到CList控件中显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows核心编程(第五版)随书源代码 ...

    vc++ 应用源码包_2

    非常好的一个实例,把网络连接的UDP/TCP都插入到CList控件中显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows核心编程(第五版)随书源代码 ...

    vc++ 应用源码包_5

    非常好的一个实例,把网络连接的UDP/TCP都插入到CList控件中显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows核心编程(第五版)随书源代码 ...

    vc++ 开发实例源码包

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...

    Java范例开发大全 (源程序)

     实例126 将由键盘中录入的信息保存到文件中 176  实例127 一个文件变成多个小文件 178  实例128 多个小文件合成一个文件 181  实例129 统计指定文件中的字符个数 183  实例130 对象的序列化与反序列化 185...

    java范例开发大全(pdf&源码)

    实例126 将由键盘中录入的信息保存到文件中 176 实例127 一个文件变成多个小文件 178 实例128 多个小文件合成一个文件 181 实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时...

    java范例开发大全源代码

     实例126 将由键盘中录入的信息保存到文件中 176  实例127 一个文件变成多个小文件 178  实例128 多个小文件合成一个文件 181  实例129 统计指定文件中的字符个数 183  实例130 对象的序列化与反序列化...

    java范例开发大全

    实例126 将由键盘中录入的信息保存到文件中 176 实例127 一个文件变成多个小文件 178 实例128 多个小文件合成一个文件 181 实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时...

    Java范例开发大全(全书源程序)

    实例126 将由键盘中录入的信息保存到文件中 176 实例127 一个文件变成多个小文件 178 实例128 多个小文件合成一个文件 181 实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131...

Global site tag (gtag.js) - Google Analytics