精华内容
参与话题
问答
  • udp 发送文件

    2014-10-23 17:10:48
    这是一个udp发送文件,接收文件的例子,是linux下的,有Makefile
  • UDP发送文件

    2019-07-04 13:19:00
    接收端 package com.zy.demo2; import java.io.File; import java.io.FileOutputStream; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net....public cla...

    接收端

    package com.zy.demo2;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.SocketException;
    
    public class UDPReceive {
    
        public static void main(String[] args) throws Exception {
            //1创建码头
            DatagramSocket datagramSocket = new DatagramSocket(9999);//双方约定的
            
            
            //2创建集装箱
    //        byte b[]=new byte[1024];//空的字节数组
    //        DatagramPacket datagramPacket = new DatagramPacket(b, b.length);
    //        
    //        
    //        //3收货
    //        datagramSocket.receive(datagramPacket);//线程阻塞!!!(没收到时)        
        
            
            
            //-----------------------------
            byte[] aa = new byte[1];
            
            
            
            FileOutputStream fileOutputStream = new FileOutputStream(new File("E:\\接收的文件\\1.png"));
            
            do {
                DatagramPacket datagramPacket = new DatagramPacket(aa, 0, aa.length);
                if(datagramPacket.getLength()!=1){
                    break;
                }
                datagramSocket.receive(datagramPacket);
                System.out.println(datagramPacket.getLength());
                fileOutputStream.write(datagramPacket.getData());
            } while (true);
            System.out.println("接收完成");
            //---------------------------------------
            //4查看货物
    //        System.out.println(new String(b));
            
            //5释放资源
            datagramSocket.close();
        }
    
    }

    发送端

    package com.zy.demo2;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    public class UDPSend {
    
        public static void main(String[] args) throws Exception {
            
            //1创建码头
            DatagramSocket datagramSocket = new DatagramSocket();
            //2创建集装箱
    //        String data="中国食用油";
    //        byte[] bytes = data.getBytes();
            
            
            //3发送数据
            //根据名字获取主机(机器互联)
            InetAddress byName = InetAddress.getByName("192.168.219.61");//getByName("127.0.0.1")也可以写ip,不一定非得是主机名
            
    //        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, byName, 9999);    
                    
    //        datagramSocket.send(datagramPacket);
        
            byte bb[]=new byte[1];//udp容易丢包,为了降低损失,字节数组调整小些
            FileInputStream fileInputStream = new FileInputStream(new File("E:\\13.png"));
            int read = fileInputStream.read(bb);
            
            while(read!=-1){
                DatagramPacket datagramPacket = new DatagramPacket(bb, bb.length, byName, 9999);    
                datagramSocket.send(datagramPacket);
                read = fileInputStream.read(bb);
            }
         
            //4释放资源
            datagramSocket.close();
      
        }
    
    }

    程序一个bug:接收端接收完数据时JVM还在运行着,找不到合适的方法让退出JVM

    转载于:https://www.cnblogs.com/qfdy123/p/11131842.html

    展开全文
  • UDP源码 UDP UDP传输 UDP发送文件 UDP发送
  • Socket之UDP发送文件

    2014-06-17 13:09:00
     三、Socket之UDP异步传输文件-多文件传输和文件MD5校验  四、Socket之UDP异步传输文件-用控件显示文件传输进度  五、Socket之UDP异步传输文件-实现传输中取消传送  六、Socket之UDP异步传输文件-实现稳定的...
    展开全文
  • DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream("e:\\\\jdk1.6.zip"))); DatagramSocket ds = new DatagramSocket(); byte[] buf = new byte[61440];
    DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream("e:\\\\jdk1.6.zip")));
              DatagramSocket ds = new DatagramSocket();
              byte[] buf = new byte[61440];
              int read = 0;
              int i = 0;
              long a = new Date().getTime();
              while(true){
           	   if(dis!=null){
           		  read = dis.read(buf);
           		  System.out.println("read--------------"+read);
           	   }
           	   System.out.println(i++);
           	   if(read==-1){
           		   System.out.println(new Date().getTime()-a);
           		   break;
           	   }
           	   DatagramPacket dp = new DatagramPacket(buf, buf.length,new InetSocketAddress("192.168.1.101",8888));
           	   ds.send(dp);
           	  TimeUnit.MICROSECONDS.sleep(500);
              }
              System.out.println("文件传输完成.....");
              dis.close();
              ds.close();
    }

    展开全文
  • 这个是我要做的课程设计,用java做一个QQ,发送接收信息是TCP做的,所以发送和接受文件想用udp做,现在的问题是:我老是在运行接受端的"ds.receive(dp);"里就停住运行不下去了,为什么啊,求高手解答啊~~~快要交了= ...
  • -(void) UDP_SendFile:(NSString *) filename tag:(NSInteger) msgtag; { NSString * filepath=[NSTemporaryDirectory() stringByAppendingString:filename]; NSData * sdata=[[NSData alloc] initW...

    -(void) UDP_SendFile:(NSString *) filename tag:(NSInteger) msgtag;

    {

        NSString * filepath=[NSTemporaryDirectory() stringByAppendingString:filename];

        NSData * sdata=[[NSData alloc] initWithContentsOfFile:filepath];

        

        Byte *sarr;

        NSData *fdata=[filename dataUsingEncoding:NSUTF8StringEncoding];

        

        int sumpak,curpak;

        

        //分包发送

        int total=sdata.length,curloc,srctotal=sdata.length;

        sumpak=srctotal/8000;

        if (srctotal%8000==0)

        {

        }

        else

        {

            sumpak=sumpak+1;

        }

        curpak=0;

        curloc=0;

        NSLog(@"总数:%d",total);

        //文件信息头:

        /*    EA EA                                     2

              FILETYPE                                  1

              msgtag1 msgtag2 msgtag3 msgtag4           4

              PAKNUM1 PAKNUM2 PAKNUM3 PAKNUM4           4

              PAKSUM1 PAKSUM2 PAKSUM3 PAKSUM4           4

              DATALEN1 DATALEN2                         2

              filename                                  100

              CHK1 CHK2                                 2

         */

        while (total>8000)

        {

            curpak++;

            NSData *pdata=[sdata subdataWithRange:NSMakeRange(curloc,8000)];

            sarr=new Byte[8120];

            Byte * bytes;

            sarr[0]=0xea;   //头标记

            sarr[1]=0xea;   //头标记

            sarr[2]=0;      //文件类型

     

            sarr[3]=msgtag/256/256/256;          //文件号

            sarr[4]=msgtag%(256*256*256)/256;

            sarr[5]=msgtag%(256*256)/256;

            sarr[6]=msgtag%(256*256)%256;

     

            sarr[7]=curpak/256/256/256;          //包序号

            sarr[8]=curpak%(256*256*256)/256;

            sarr[9]=curpak%(256*256)/256;

            sarr[10]=curpak%(256*256)%256;

            

            sarr[11]=sumpak/256/256/256;          //总包数

            sarr[12]=sumpak%(256*256*256)/256;

            sarr[13]=sumpak%(256*256)/256;

            sarr[14]=sumpak%(256*256)%256;

            

            Byte *fbytes=(Byte *)[fdata bytes];

            NSUInteger totalf;

            if ([fdata length]>100)

            {

                totalf=100;

            }

            else

            {

                totalf=[fdata length];

            }

            for(int i=0;i<100;i++)

                sarr[17+i]=0;

            

            for(int i=0;i<totalf;i++)

            {

                sarr[17+i]=fbytes[i];

            }

            

            sarr[15]=8000/256;

            sarr[16]=8000%256;

            int check=0;

            bytes=(Byte *)[pdata bytes];

            for(int i=0;i<8000;i++)

            {

                check=check+bytes[i];

                sarr[i+120]=bytes[i];

            }

            sarr[117]=check/256;

            sarr[118]=check%256;

            sarr[119]=0;

            NSData *sdata=[[NSData alloc]initWithBytes:sarr length:8120];

            [udpClient sendData:sdata toHost:serverip port:8009 withTimeout:5000 tag:1];

            total=total-8000;

            curloc=curloc+8000;

            sarr=nil;

            NSLog(@"%d",8000);

        }

        if (total>0)

        {

            curpak++;

            NSData *pdata=[sdata subdataWithRange:NSMakeRange(curloc,total)];

            sarr=new Byte[total+120];

            Byte * bytes=(Byte *) [pdata bytes];

            sarr[0]=0xea;   //头标记

            sarr[1]=0xea;   //头标记

            sarr[2]=0;      //文件类型

            

            sarr[3]=msgtag/256/256/256;          //文件号

            sarr[4]=msgtag%(256*256*256)/256;

            sarr[5]=msgtag%(256*256)/256;

            sarr[6]=msgtag%(256*256)%256;

     

            sarr[7]=curpak/256/256/256;          //包序号

            sarr[8]=curpak%(256*256*256)/256;

            sarr[9]=curpak%(256*256)/256;

            sarr[10]=curpak%(256*256)%256;

            sarr[11]=sumpak/256/256/256;          //总包数

            sarr[12]=sumpak%(256*256*256)/256;

            sarr[13]=sumpak%(256*256)/256;

            sarr[14]=sumpak%(256*256)%256;

            

            

            

            sarr[15]=total/256;

            sarr[16]=total%256;

            int check=0;

            Byte *fbytes=(Byte *)[fdata bytes];

            NSUInteger totalf;

            if ([fdata length]>100)

            {

                totalf=100;

            }

            else

            {

                totalf=[fdata length];

            }

            for(int i=0;i<100;i++)

              sarr[17+i]=0;

            

            for(int i=0;i<totalf;i++)

            {

                sarr[17+i]=fbytes[i];

            }

            

            for(int i=0;i<total;i++)

            {

                check=check+bytes[i];

                sarr[i+120]=bytes[i];

            }

            sarr[117]=check/256;

            sarr[118]=check%256;

            sarr[119]=0;

            NSData *sdata=[[NSData alloc]initWithBytes:sarr length:total+120];

            

            [udpClient sendData:sdata toHost:serverip port:8009 withTimeout:5000 tag:1];

            NSLog(@"%d",total);

     

        }

     

    }

     

    转载于:https://www.cnblogs.com/HuiLove/p/3904328.html

    展开全文
  • //////////发送端 package com.qq.client.model; import java.io.FileInputStream; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net....
  • 本来是使用TCP发送文件的,但是速度相对较慢,所以想用UDP但是UDP又是不可靠的协议。我想了一种最简单的办法就是返回相应的指令表示接受端有没有收到或者数据正不正确,有问题的话就重发刚才的包,没问题就发下一个...
  • UDP广播发送文件

    2018-05-20 20:44:55
    一台服务器给N台客户端通过一个路由局域网发送文件,S(1)/C(N)模型。服务器是一台PC。或者pad测试。http下载。客户端同时请求下载时候下载速度基本停止,服务器也会有异常。 udp分发。广播丢包太严重。基本丢包率...
  • udp文件发送
  • UDP发送大型文件_不丢包

    千次阅读 2017-11-05 17:27:51
    先上图1:如果对文件要求不...一般的程序员会说,下载吗 ,直接下载安装就好了 ,我也是这样想的 ,素不知线下的网络的环境 有多差,当时一个业务员和我说,要是能实现手机发送文件给设备就好了,毕竟大家都是用手机...
  • C++ UDP发送接收文件(BMP)

    千次阅读 2017-12-28 22:16:16
    //发送文件; #include #include #include #include #pragma comment(lib,"ws2_32.lib") #define DEST_PORT 3000 #define MAX_DATA 51200 //50kb #define DEST_IP_ADDRESS "127.0.0.1" //"192.1
  • UDP方式发送视频文件或数据包

    热门讨论 2012-10-17 21:10:18
    一个简单而完整的以UDP方式发送文件或单独数据包的程序. 采用VC6.0编译和运行.
  • 2,反向通讯,通过服务器端给客户端发送文件; 3,实现客户端与服务器端的Chat聊天功能(稍加改动可转化为C->S->C的聊天程序) 4,如何使用IdTCPServer和IdTCPClient控件 5,初步实现线程命令方式,在传送文件的时候不会...
  • 使用udp发送一个可执行的jar文件服务端:#!python #文件名: demo_server.py ''' 规定: 服务器接受客户端请求,得知要发送文件了(实际就得知该发送哪个) 向其发送文件,然后不停的发送(大文件分段发送),此处我还要...
  • 原文链接 http://blog.bccn.net/liYX9553/61129 dialog.h:#ifndef DIALOG_H #define DIALOG_H #include #include class QTcpServer; class QFile; class QTcpSocket; class QUdpSocket;...cl
  • 利用UDP协议发送与接收文件

    千次阅读 2011-11-22 14:19:20
    一、发送端  //初始化winsocket库  WORD ver;  WSADATA WSAData;  ver=MAKEWORD(1,1);  if(WSAStartup(ver,&WSAData))  {  MessageBox("Startup error");  return;  }  if ( LOBYTE( WSAData....
  • 2.开启另一个实例点发送,指定IP,port默认即可,指定文件就开始传输。 接收的文件在c:\udxtemp.temp 传另一个文件需要关掉以前的实例从1重新开始 --------------------------------------------------- testudx....
  • #ifndef WIDGET_H #define WIDGET_H #include #include #include #include #include class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = 0); ~Widget();...private:
  • 更多资料请点击:我的...本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢。 /* server部分: */ #include <stdio.h> #include <sys/types.h>...si
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • #ifndef _MULTI_NET_UTIL_H__ #define _MULTI_NET_UTIL_H__ #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;map&gt; #ifdef WIN32 #include &...gt...
  • 请问通过UDP发送数据,不使用SDP文件,有什么方法可以实现通过VLC实时视频播放
  • Python通过UDP协议发送数据与接收数据。包含udpsocket_recieve.py udpsocket_send.py两个文件,分别为简单的UDP接收测试、UDP发送测试。

空空如也

1 2 3 4 5 ... 20
收藏数 1,515
精华内容 606
关键字:

udp发送文件