用户操作
[即时聊天] [发私信] [加为好友]
黑马王子ID:fzw98
35998次访问,排名3415(-1),好友2人,关注者25人。
java
fzw98的文章
原创 308 篇
翻译 0 篇
转载 24 篇
评论 22 篇
黑马王子的公告
阿里通网络电话,中国最优秀的网络电话 要向天下名师学习,这里应有尽有。 要向天下名师学习,这里应有尽有。
最近评论
catheriner66:推荐一下:开源人网站www.vifir.com 上面有比较全面系统的EXTJS学习资料
catheriner66:推荐一下:开源人网站www.vifir.com 上面有比较全面系统的EXTJS学习资料
合肥菲利浦斯电子科技:合肥菲利浦斯电子科技

菲利浦斯电子科技(合肥)有限公司,是美国菲利浦斯国际产业集团(Philipus Industry Group Ltd.CO.USA)在中国的市场运营和品牌管理机构,负责全面拓展“菲利浦斯”在中国市场的营销网络,造福中国民众。

针对中国目前严峻的室内空气污染形势,“菲利浦斯”把眼光投向中国市场。美国菲利浦斯国际产业……
合肥菲利浦斯电子科技:合肥菲利浦斯电子科技

菲利浦斯电子科技(合肥)有限公司,是美国菲利浦斯国际产业集团(Philipus Industry Group Ltd.CO.USA)在中国的市场运营和品牌管理机构,负责全面拓展“菲利浦斯”在中国市场的营销网络,造福中国民众。

针对中国目前严峻的室内空气污染形势,“菲利浦斯”把眼光投向中国市场。美国菲利浦斯国际产业……
zhangwenbo:学习了……
文章分类
收藏
    相册
    真我的风采
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 JAVA UDP 图像传输实例收藏

    新一篇: B/S方式下使用jfreechart生成统计图表 | 旧一篇: MySQL左关联一例

     
      前言: UDP 方式传递数据分两个步骤 ,第一步 构建UDP 数据包 ,第二步 创建 UDP SOCKET
      发送数据的时候: 构建UDP 数据包 需要写好 目的 IP 地址,以及目的主机的端口号
      DatagramPacket data=new DatagramPacket(b,b.length,address,7000);
      发送数据包 创建 SOCKET 可以不用指定端口号
      DatagramSocket mailSend=new DatagramSocket();
      接收数据的时候: 创建UDP 数据包不需要写IP 地址和端口号
      pack=new DatagramPacket(b,b.length);
      接收数据包时,创建SOCKET必须写端口号
      mailReceive=new DatagramSocket(7000);
      本例子是通过UDP 方式,从服务器端发送一幅图到客户端,客户端显示出来
      编译后运行 java Server ,然后再开一个cmd 窗口 运行 java Client 。点击client 窗口的get picture 就可以了
      注意 图片文件 a.jpg 需要和编译好的类放在一起。
      /** * @(#)Server.java
      *
      * Server application
      *
      * @author
      * @version 1.00 2007/4/16
      */import java.net.*import java.io.* public class Server {
      
      public static void main(String[] args) {
      
      DatagramPacket pack=null DatagramSocket mailReceive=null ServerThread thread;
      byte b[]=new byte[8192];
      InetAddress address=null System.out.println("server is running");
      pack=new DatagramPacket(b,b.length);
      
      try {
      mailReceive=new DatagramSocket(7000);
      System.out.println("socket build");
      } catch(IOException e)
      {
      e.printStackTrace();
      } while(true){
      try {
      mailReceive.receive(pack);
      address=pack.getAddress();
      System.out.println("get client address:"+address);
      
      } catch(IOException e){
      System.out.println("error is here");
      }
      if(address!=null)
      {
      System.out.println("get address");
      new ServerThread(address).start();
      }
      else {
      System.out.println("can't get address");
      continue
      }
      
      }
      
      }}class ServerThread extends Thread{
      InetAddress address;
      DataOutputStream out=null DataInputStream in=null String s=null ServerThread(InetAddress address)
      {
      this.address=address;
      } public void run()
      {
      FileInputStream in;
      byte b[]=new byte[8192];
      try {
      in=new FileInputStream("a.jpg");
      int n=-1 while((n=in.read(b))!=-1)
      {
      DatagramPacket data=new DatagramPacket(b,b.length,address,5678);
      DatagramSocket mailSend=new DatagramSocket();
      mailSend.send(data);
      System.out.println("read image");
      } in.close();
      byte end[]="end".getBytes();
      DatagramPacket data=new DatagramPacket(end,end.length,address,5678);
      DatagramSocket mailSend=new DatagramSocket();
      mailSend.send(data);
      System.out.println("send all image data ok");
      
      } catch(Exception e){
      e.printStackTrace();
      } }
      }
      /** * @(#)Client.java
      *
      *
      * @author pkgold1
      * @version 1.00 2007/4/16
      */import java.net.*import java.awt.*import java.awt.event.*import java.io.*public class Client extends Frame implements Runnable, ActionListener {
      Button b=new Button("get picture");
      ImageCanvas canvas;
      public Client() {
      super("I am a client");
      setSize(600,600);
      setVisible(true);
      b.addActionListener(this);
      add(b,BorderLayout.NORTH);
      canvas=new ImageCanvas();
      add(canvas,BorderLayout.CENTER);
      Thread thread=new Thread(this);
      validate();
      addWindowListener(new WindowAdapter()
      {
      public void windowClosing(WindowEvent e){
      System.exit(0);
      } });
      thread.start();
      } public void actionPerformed(ActionEvent event){
      byte b[]="please send picture".trim().getBytes();
      try{
      InetAddress address=InetAddress.getByName("localhost");
      DatagramPacket data=new DatagramPacket(b,b.length,address,7000);
      DatagramSocket mailSend=new DatagramSocket();
      mailSend.send(data);
      System.out.println("client send data");
      
      } catch(Exception e){
      e.printStackTrace();
      } } public void run()
      {
      DatagramPacket pack=null DatagramSocket mailReceive=null byte b[]=new byte[8192];
      ByteArrayOutputStream out=new ByteArrayOutputStream();
      try {
      pack=new DatagramPacket(b,b.length);
      mailReceive=new DatagramSocket(5678);
      System.out.println("reay receive data");
      } catch(Exception e){
      e.printStackTrace();
      
      } try {
      while(true){
      mailReceive.receive(pack);
      String message=new String(pack.getData(),0,pack.getLength());
      if(message.startsWith("end"))
      {
      System.out.println("get all data ok");
      break } out.write(pack.getData(),0,pack.getLength());
      System.out.println("I am getting data");
      } byte imagebyte[]=out.toByteArray();
      out.close();
      Toolkit tool=getToolkit();
      Image image=tool.createImage(imagebyte);
      canvas.setImage(image);
      System.out.println("paint image");
      canvas.repaint();
      validate();
      } catch(IOException e){
      e.printStackTrace();
      }
      } public static void main(String args[])
      {
      new Client();
      }
      }
      import java.awt.*import java.awt.event.*class ImageCanvas extends Canvas{
      Image image=null {
      setSize(200,200);
      } public void paint(Graphics g){
      if(image!=null)
      {
      g.drawImage(image,0,0,this);
      } else {
      this.image=image;
      } } public void setImage(Image image)
      {
      this.image=image;
      }
      }
      希望对学习java 网络编程的同学有所帮助。

    发表于 @ 2008年01月31日 15:38:00|评论(loading...)|编辑

    新一篇: B/S方式下使用jfreechart生成统计图表 | 旧一篇: MySQL左关联一例

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 黑马王子