Tag: 网络编程

什么会导致UDP数据包被发送到localhost时被丢弃?

我正在发送非常大(64000字节)的数据报。 我意识到MTU远小于64000字节(典型值大约是1500字节,从我的读数开始),但我怀疑会发生两件事之一 – 要么没有数据报就能通过(所有大于1500字节)会被静默删除或导致抛出错误/exception)或64000字节数据报将被分成大约43个1500字节的消息并透明地传输。 从长远来看(2000+ 64000字节数据报),数据报的大约1%(即使是LAN似乎exception高)也会被丢弃。 我可能期望通过网络,数据报可能无序到达,被丢弃,过滤等等。 但是,在localhost上运行时我没想到这一点。 是什么导致无法在本地发送/接收数据? 我意识到UDP是不可靠的,但我没想到它在localhost上如此不可靠。 我想知道它是否只是一个时间问题,因为发送和接收组件都在同一台机器上。 为了完整起见,我已经包含了发送/接收数据报的代码。 发送: DatagramSocket socket = new DatagramSocket(senderPort); int valueToSend = 0; while (valueToSend < valuesToSend || valuesToSend == -1) { byte[] intBytes = intToBytes(valueToSend); byte[] buffer = new byte[bufferSize – 4]; //this makes sure that the data is put into an array of the […]

在套接字上发送和接收文件

我正在从java服务器向远程Android客户端发送文件。 我使用outputstream写字节。 在读取这些字节时,read()方法在流结束后继续尝试读取字节。 如果我在服务器端关闭输出流,则读取操作工作罚款。 但我必须再次在同一个套接字上写文件,所以无法关闭输出流的任何解决方案? 注意:我的代码适用于共享单个文件 编写文件的代码 public static void writefile(String IP, String filepath, int port, OutputStream out ) throws IOException { ByteFileConversion bfc = new ByteFileConversion(); byte[] file = bfc.FileToByteConversion(filepath); out.write(file, 0, file.length); out.close(); // i donot want to close this and how can I tell reading side that stream is ended. System.out.println(“WRITTEN”); } […]

在java中读取需要用户名和密码的远程文件

我试图在java中读取远程文件 File f = new File(“//192.168.1.120/home/hustler/file.txt”); 远程计算机需要用户名和密码才能访问该文件。 有没有办法可以通过java代码传递参数并读取文件?