5 java 如何使用udp协议传送文件

5 java 如何使用udp协议传送文件,第1张

//发送端SocketSendFile.java

import java.io.*

import java.net.*

public class SocketSendFile {

public static final int SER_PORT=666

public static final int CLI_PORT=8484

public static final String SER_IP="192.168.0.35"

public static int bufSize = 1024

public static byte] mess = new bytebufSize]

//建立Socket引用

public static DatagramSocket dp

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

dp = new DatagramSocket(SER_PORT)

//调用构造函数SocketSendFile,并传递参数args0](所要传输的文件名)

SocketSendFile(args0])

}

public static void SocketSendFile(String file2) throws Exception {

//定义一个计数器

int pos =0

//设置写入流

FileInputStream fis = new FileInputStream(file2)

BufferedInputStream bis = new BufferedInputStream(fis)

DataInputStream dis = new DataInputStream(bis)

int i

do {

i = dis.read()

int j=0

while (j<1024 &i != -1) {

messpos++] = (byte) i

i=dis.read()

j++

}

dp.send(new DatagramPacket(mess,pos,InetAddress.getByName(SER_IP),CLI_PORT))

}

while (i != -1)

fis.close()

}

}

//接收端SocketReceiveFile.java

import java.net.*

import java.io.*

public class SocketReceiveFile {

public static int bufSize=1024

public static byte] mess=new bytebufSize]

public static DatagramSocket dp

public static final int SER_PORT=8484

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

dp = new DatagramSocket(SER_PORT)

SocketReceiveFile(args0])

}

public static void SocketReceiveFile(String file1) throws Exception {

FileOutputStream fos = new FileOutputStream(file1)

BufferedOutputStream bos = new BufferedOutputStream(fos)

DataOutputStream dos = new DataOutputStream(bos)

int i

DatagramPacket p = new DatagramPacket(mess,mess.length)

while(true) {

boolean j=false

while (p.getData().length != 0) {

dos.write(p.getData())

dp.receive(p)

j=true

}

// System.out.println(new String(p.getData(),0,p.getLength()))

if (j)

System.out.println("文件传送完毕.")

}

// fos.close()

}

}

java UDP连接,如果要发送文件的话,你只能自己定义一系列的协议

因为TCP UDP 双方发送都是二进制数据

那么这个实现非常复杂

得不停的发送数据,写数据,建议使用http协议

我记忆中可靠的传输应该类似TCP的三次握手:

1.发送方向接收方发送一个随机数

2.接收方收到随机数后将其+1,再回传给发送方。

3.发送方收到随机数判断其是否被+1,如果是代表双方的传递线路是通畅的,可以正式开始传送数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11476479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存