`
lws0402
  • 浏览: 108569 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java UDP打印

    博客分类:
  • java
阅读更多
采用UDP的通讯方式,调用java自带的awt打印接口

服务器端代码

Server:
# import java.io.IOException;  
# import java.net.DatagramPacket;  
# import java.net.DatagramSocket;  
# import java.net.SocketException;  
#   
# public class Server  
# {  
#     private DatagramSocket server;  
#       
#     private DatagramPacket packet;  
#       
#     private byte[] b;  
#       
#     public Server()  
#     {  
#         startServer();  
#     }  
#       
#     private void startServer()  
#     {  
#         try  
#         {  
#             server = new DatagramSocket(12345);  
#   
#             while(true)  
#             {  
#                 b = new byte[1024];  
#   
#                 packet = new DatagramPacket(b, b.length);  
#   
#                 server.receive(packet);  
#                   
#                 new Thread(new PrintThread(packet, b)).start();  
#             }  
#               
#         }catch(SocketException e)  
#         {  
#             e.printStackTrace();  
#         }catch(IOException e)  
#         {  
#             e.printStackTrace();  
#         }finally  
#         {  
#             server.close();  
#         }  
#     }  
#   
#     public static void main(String[] args)  
#     {  
#         new Server();  
#     }  
# }


打印线程代码

PrintThread
# import java.net.DatagramPacket;  
#   
# public class PrintThread implements Runnable  
# {  
#     private DatagramPacket packet;  
#   
#     private byte[] b;  
#   
#     public PrintThread(DatagramPacket packet, byte[] b)  
#     {  
#         this.packet = packet;  
#         this.b = b;  
#     }  
#   
#     public void run()  
#     {  
#         int i = 0;  
#   
#         i = packet.getLength();  
#   
#         if(i>0)  
#         {  
#             String str = new String(b, 0, i);  
#             new Print().doPrint(str);  
#         }  
#     }  
# }


打印的实际代码

Print:
# import java.awt.Color;  
# import java.awt.Font;  
# import java.awt.Graphics;  
# import java.awt.Graphics2D;  
# import java.awt.Paint;  
# import java.awt.print.PageFormat;  
# import java.awt.print.Printable;  
# import java.awt.print.PrinterException;  
#   
# import javax.print.Doc;  
# import javax.print.DocFlavor;  
# import javax.print.DocPrintJob;  
# import javax.print.PrintException;  
# import javax.print.PrintService;  
# import javax.print.PrintServiceLookup;  
# import javax.print.SimpleDoc;  
# import javax.print.attribute.DocAttributeSet;  
# import javax.print.attribute.HashDocAttributeSet;  
# import javax.print.attribute.standard.MediaSizeName;  
# import javax.swing.JOptionPane;  
#   
# public class Print implements Printable {  
#       
#     private String content = null;  
#       
#     public void setContent(String content) {  
#         this.content = content;  
#     }  
#   
#     public void doPrint(String content) {  
#         if (null == content || content.equals("")) {  
#             Object message = new String("Sorry, Printer Job is Empty, Print Cancelled!");  
#             String title = "Empty";  
#             JOptionPane.showConfirmDialog(null, message, title, JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);  
#         } else {  
#             setContent(content);  
#             PrintService printService = PrintServiceLookup.lookupDefaultPrintService();  
#             DocPrintJob docPrintJob = printService.createPrintJob();  
#             DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;  
#             DocAttributeSet attributes = new HashDocAttributeSet();  
#             attributes.add(MediaSizeName.A);  
#             Doc doc = new SimpleDoc(this, flavor, attributes);  
#             try {  
#                 docPrintJob.print(doc, null);  
#             } catch (PrintException e) {  
#                 // TODO Auto-generated catch block  
#                 e.printStackTrace();  
#             }  
#         }  
#     }  
#   
#     public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)  
#             throws PrinterException {  
#         // TODO Auto-generated method stub  
#         if (pageIndex >= 1) {  
#             return Printable.NO_SUCH_PAGE;  
#         } else {  
#             Graphics2D graphics2D = (Graphics2D) graphics;  
#             graphics2D.translate(pageFormat.getImageableX(), pageFormat.getImageableY());  
#             Paint paint = Color.black;  
#             graphics2D.setPaint(paint);  
#             Font font = new Font("宋体", Font.PLAIN, 10);  
#             graphics2D.setFont(font);  
#             float x = 0.0f;  
#             float y = font.getSize2D();  
#   
#             String[] array = content.split("@");  
#             String room_idx = array[0];  
#             String content = array[1];  
#             String price = array[2];  
#             String unit = array[3];  
#             String time = array[4];  
#   
#             price = price + "元/" + unit;  
#   
#             graphics2D.drawString("网络视频酒店信息服务项目", x, 1*y);  
#             graphics2D.drawString("--------------------------------", x, 2*y);  
#             graphics2D.drawString("房间号:    " + room_idx, x, 3*y);  
#             graphics2D.drawString("消费内容:  " + content, x, 4*y);  
#             graphics2D.drawString("消费金额:  " + price, x, 5*y);  
#             graphics2D.drawString("消费时间:  " + time, x, 6*y);  
#         }  
#         return Printable.PAGE_EXISTS;  
#     }  
#   
# }


客户端代码

Client:
# import java.io.IOException;  
# import java.net.DatagramPacket;  
# import java.net.DatagramSocket;  
# import java.net.InetSocketAddress;  
# import java.net.SocketException;  
# import java.text.SimpleDateFormat;  
# import java.util.Date;  
#   
# public class Client  
# {  
#     private DatagramSocket client;  
#       
#     private DatagramPacket packet;  
#       
#     private InetSocketAddress address;  
#       
#     private byte[] b;  
#   
#     public void doPrint(String str)  
#     {  
#         try  
#         {  
#             client = new DatagramSocket();  
#               
#             address = new InetSocketAddress("127.0.0.1", 12345);  
#   
#             SimpleDateFormat spl = new SimpleDateFormat("yy-MM-dd HH:mm:ss");  
#   
#             str = str + "@" + spl.format(new Date());  
#   
#             b = str.getBytes();  
#   
#             packet = new DatagramPacket(b, b.length, address);  
#   
#             client.send(packet);  
#         } catch (SocketException e)  
#         {  
#             e.printStackTrace();  
#         } catch (IOException e)  
#         {  
#             e.printStackTrace();  
#         } finally  
#         {  
#             client.close();  
#         }  
#     }  
#   
#     public static void main(String[] args)  
#     {  
#         for(int i = 0; i<5; i++)  
#         {  
#             int a = i;  
#             String str = a + "@" + (a+1) + "@" + (a+2) + "@天";  
#             new Client().doPrint(str);  
#         }  
#     }  
# }
分享到:
评论

相关推荐

    java网络编程,UDP,发送16进制报文。

    本教程主要关注使用Java标准版(J2SE)进行UDP(用户数据报协议)通信,特别是如何发送16进制格式的报文。UDP是一种无连接的、不可靠的传输协议,适合对实时性要求高的场景,例如视频流和在线游戏。 首先,让我们...

    java udp 实现简单实例

    在Java网络编程中,UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了简单且高效的数据包传输,但不保证数据的顺序或可靠性。本文将通过一个简单的实例来介绍如何使用Java实现UDP通信。 首先,我们...

    UDP-echo-client-server.rar_Echo Echo_java udp_java udp echo_udp

    在这个“UDP echo client server”项目中,我们有两个核心文件:UDPClient.java 和 UDPEchoServer.java。这两个文件分别实现了UDP协议中的客户端和服务端功能,用于演示UDP数据包的发送和接收,也就是所谓的回显服务...

    UDP-Server-master.zip_java udp server

    在这个"UDP-Server-master.zip_java udp server"项目中,我们将会探讨如何在Java中实现一个UDP服务器及其客户端。 首先,我们要理解Java中的`DatagramSocket`类,这是处理UDP通信的核心。`DatagramSocket`用于发送...

    期末课设-基于Java抓取UDP数据包(jpcap资源需自行安装)

    6. **处理和输出结果**:在解析数据包后,你可以根据需求对UDP首部信息进行处理,例如打印到控制台,或者存储到文件中。为了区分不同数据包,可以在输出时添加分隔符。 7. **结束捕获**:当你完成数据包捕获后,...

    Java UDP

    创建一个简单的UDP服务器,监听特定端口并打印接收到的数据: ```java import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; ...

    一个java写的UDP模拟程序

    在Java中实现UDP通信,通常涉及到两个主要类:`java.net.DatagramSocket` 和 `java.net.DatagramPacket`。 `DatagramSocket` 类代表一个UDP套接字,用于发送和接收数据报包。创建一个`DatagramSocket`对象时,系统...

    java UDP实例

    Java UDP实例是一个关于使用Java实现用户数据报协议(User Datagram Protocol)编程的示例。UDP是一种无连接的、不可靠的传输层协议,常用于实时音视频传输、在线游戏等对延迟敏感且能容忍丢包的场景。在这个实例中...

    基于Java中UDP的广播形式(实例讲解)

    基于Java中UDP的广播形式(实例讲解) 本篇文章主要讲解了基于Java中UDP的广播形式的实现过程,通过实例讲解,帮助读者更好地理解UDP协议在Java中的应用。 一、UDP协议简介 UDP(User Datagram Protocol)是一种...

    java UDP通信客户端与服务器端实例分析

    Java UDP 通信客户端与服务器端实例分析 Java UDP 通信客户端与服务器端实例分析是介绍 Java 语言基于 UDP 协议的客户端与服务器端的实现技巧和相关操作注意事项。UDP 协议是一种无连接的网络协议,它不像 TCP 协议...

    java编程实现基于UDP协议传输数据的方法

    在本文中,我们将深入探讨如何使用Java编程语言实现基于UDP协议的数据传输。UDP协议是一种无连接的、不可靠的传输层协议,相比TCP协议,它提供了更低的延迟和更高的传输效率,尤其适用于对实时性要求高的应用,如...

    基于UDP的客户端与服务器端java实现

    本篇将详细介绍如何使用Java语言来实现基于UDP的客户端与服务器端通信。 首先,我们要了解UDP的基本原理。UDP不建立连接,而是直接发送数据报,每个数据报包含完整的源地址和目的地址,因此可以由任何节点发送到...

    基于UDPjava聊天程序

    - **服务端(server.java)**:首先创建一个`DatagramSocket`监听指定端口,然后在一个无限循环中不断接收`DatagramPacket`,解析接收到的数据并打印,最后通过`DatagramSocket.send()`方法将响应数据回送给客户端。...

    Srever_java_UDP_服务端_shuthaa_

    在本文中,我们将深入探讨如何使用Java实现一个UDP(用户数据报协议)服务器,这个服务器被称为"shuthaa"。UDP是一种无连接的网络协议,它不像TCP那样提供可靠的数据传输,但因其轻量级和低延迟的特性,常用于实时...

    UDP通信过程详解+附Java实现方式(wcb2003)

    2. **准备数据**:UDP通信的数据通常封装在`java.net.DatagramPacket`对象中。开发者需要创建一个字节数组来存放要发送的数据,并创建一个`DatagramPacket`实例,将数据和目标IP地址、端口号传入。 3. **发送数据**...

    java小程序 基于UDP协议的会话小练习

    Java小程序基于UDP协议的会话小练习主要涉及的是网络编程中的用户数据报协议(User Datagram Protocol,UDP)。UDP是一种无连接的、不可靠的传输层协议,与之相对的TCP协议则是面向连接、可靠的。在Java中,我们可以...

    基于JAVA的UDP服务器模型源代码.zip

    在Java编程语言中,UDP(User Datagram Protocol)是一种无连接的传输层协议,常用于对实时性要求较高的应用,如在线视频、音频流媒体或在线游戏。与TCP(Transmission Control Protocol)不同,UDP不保证数据包的...

    java Socket UDP实例详解

    Java Socket UDP实例详解 在Java中,Socket API不仅支持TCP(传输控制协议)通信,也支持UDP(用户数据报协议)。UDP是一种无连接的、不可靠的传输协议,适合于实时性要求高但数据完整性要求相对较低的场景。在本文...

    Java 操作Memcach实例

    Java操作Memcached实例详解 在Java开发中,Memcached是一个广泛应用的分布式内存缓存系统,用于提高应用程序的数据访问速度。本教程将详细讲解如何在Java项目中集成和使用Memcached,以及通过提供的工具类实现各种...

    用java编写简单UDP网络通信程序

    Java中的UDP(User Datagram Protocol)网络通信是一种无连接的、不可靠的数据传输方式,它相比TCP(Transmission Control Protocol)提供了更低的延迟和更高的效率。在Java中,通过使用`java.net`包下的类,我们...

Global site tag (gtag.js) - Google Analytics