`
lws0402
  • 浏览: 106862 次
  • 性别: 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进制报文。

    通过j2se upd网络编程,发送报文。我这里只是客户端,修改数据库连接,主要是把数据库里面的图片(base64编码处理),拆成包,发送给服务端。

    Java实现udp通信协议

    JavaSE项目实现UDP通信,16进制的数据报文的传输与接收,包括l日志的打印及配置

    Java 操作Memcach实例

    项目操作方法有详细注释说明 项目为maven工程配置的memcached所需jar包。 工具类中包含memcached所有操作方法实例及memcached日志操作日志记录。

    SSD8-TCP-VS-UDP-java源码

    1)用Java写一个简单的基于C/S(客户机/服务器)模式的数据报(datagram)程序。客户端设置一个计时器,开始计时后,向服务器发送一个字节的数据包,并等待服务器返回消息。发送和返回重复1000次;然后,客户端停止...

    java源码包---java 源码 大量 实例

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    udp、聊天程序

    udp通信、简易聊天程序、swing打印。TCP 是可靠连接的,UDP是不可靠连接的,信息接收不一定能接收到

    30个java工具类

    [工具类] 用java编写简单UDP网络通信程序 .java.txt [工具类] 中文验证.jsp.txt [工具类] 日期DateUtil.java [工具类] 文件FileUtil.java [工具类] 通信客户端simpleClient.java [工具类] 通信服务端simpleServer....

    【强2】30个java工具类

    [工具类] 用java编写简单UDP网络通信程序 .java.txt [工具类] 中文验证.jsp.txt [工具类] 日期DateUtil.java [工具类] 文件FileUtil.java [工具类] 通信客户端simpleClient.java [工具类] 通信服务端simpleServer....

    JAVA上百实例源码以及开源项目

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包4

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    JAVA上百实例源码以及开源项目源代码

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包3

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包2

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    Java2实用教程.rar

    11 8UDP数据报 11 9广播数据报 习题 第12章JavaApplet基础 12 1JavaApplet的运行原理 12 2网页向JavaApplet传值 12 3JavaApplet扣使用URL 12 4JavaApplet中建立新线程 12 5JavaApplet中使用套接字 习题 第13章常见...

    Java开发详解.zip

    031905_【第19章:Java网络编程】_UDP程序设计笔记.pdf 032001_【第20章:Java新IO】_缓冲区与Buffer笔记.pdf 032002_【第20章:Java新IO】_通道(Channel)笔记.pdf 032003_【第20章:Java新IO】_文件锁笔记.pdf ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...

    Java-Socket-data-transfer:使用Java Socket做一些基本的数据传输(TCP&UDP)

    Java套接字数据传输使用Java Socket进行一些基本的数据传输(TCP和UDP)。 ###脚步: 客户服务器创建TCP套接字和打印端口号创建TCP套接字并发送req_code(TCP) 接收并检查req_code 创建UDP套接字并将端口号发送...

    Java常见面试题208道.docx

    115.hibernate 中如何在控制台查看打印的 sql 语句? 116.hibernate 有几种查询方式? 117.hibernate 实体类可以被定义为 final 吗? 118.在 hibernate 中使用 Integer 和 int 做映射有什么区别? 119.hibernate 是...

    疯狂JAVA讲义

    6.2.1 打印对象和toString方法 170 6.2.2 ==和equals比较运算符 172 6.3 类成员 175 6.3.1 理解类成员 175 6.3.2 单例(Singleton)类 176 6.4 final修饰符 177 6.4.1 final变量 177 6.4.2 final方法 181 ...

    Java编程宝典(十年典藏版).明日科技 李忠尉 陈丹丹 张振坤编著.源代码(完整版)

    主要包括java初体验、eclipse与netbeans、基本语法、控制流程语句、数组、类与对象、字符串、继承与多态、接口与抽象类、集合与异常处理、io流、tcp与udp技术、窗体程序开发、多线程技术、jdbc技术、gui事件处理机制...

Global site tag (gtag.js) - Google Analytics