我正在写一些代码
我的客户端代码是
对于客户端
import java.io.*;
import java.net.*;
class Client
{
public static void main(String args[])
{
try
{
int len=args.length;
if(len== 0)
{
System.out.println("Invalid Number of Arguements");
throw new Exception();
}
else
{
int i=0;
while(i<len)
{
Socket s=new Socket("localhost",2222);
File f=new File(args[i++]);
if(f.exists())
{
OutputStream os=s.getOutputStream();
FileInputStream fr=new FileInputStream(f);
s.setSendBufferSize(fr.available());
byte data[]=new byte[fr.available()];
fr.read(data);
os.write(data);
os.flush();
os.close();
System.out.println("Sending file : "+f.getName()+" with size "+data.length);
fr.close();
}
else
{
System.out.println("File : "+args[i++]+" doesn't exist.");
}
s.close();
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
对于服务器端
import java.net.*;
import java.io.*;
import java.util.Date;
public class Server
{
public static final String dir_to_store_files="c:\\myfiles\\";
public static void main(String[] args) throws Exception
{
ServerSocket ss=new ServerSocket(2222);
ss.setReceiveBufferSize(51200);
ss.setReuseAddress(true);
Socket s=null;
while( (s=ss.accept()) != null)
{
new Thread(new ServerThreads(s,dir_to_store_files)).start();
s=null;
}
ss.close();
}
}
class ServerThreads implements Runnable
{
private static int fileNounce=0;
Socket s;
String directory;
ServerThreads(Socket s,String directory)
{
this.s=s;
this.directory=directory;
}
public void run()
{
try
{
InputStream is=s.getInputStream();
File f=new File(directory+"\\NewFile-"+fileNounce+".txt");
while(f.exists())
{
fileNounce++;
f=new File(directory+"\\NewFile "+fileNounce+".txt");
}
fileNounce++;
f.createNewFile();
FileOutputStream fos=new FileOutputStream(f);
byte data[]=new byte[is.available()];
System.out.print(is.available()+ " bytes are received from "+s.getRemoteSocketAddress());
is.read(data);
System.out.println("\t\tCreating file : "+f.getAbsolutePath()+" at : "+new Date()+" of size : "+data.length);
is.close();
fos.write(data);
fos.flush();
fos.close();
s.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
问题:服务器无法正确获取文件意味着有时新文件是以零大小(无数据)创建的。例如,我已经检查了使用 java 客户端发送 239 个 c 文件 *c 服务器正在接收随机数量的文件(在 180-235 范围内)甚至它收到的一些文件的大小为零。
fr.available() 不是你认为的那样....你想要 File.length(),以及一个用于读取要发送到服务器的文件字节的循环......
is.available()也是错误的..。考虑这样一个客户端:
byte[] buffer = new byte[4096];
int len = 0;
while ((len = fr.read(buffer)) >= 0) {
os.write(buffer, 0, len);
}
问题内容: 我正在尝试从服务器向客户端发送文件,即服务器请求的客户端。客户端指定中的文件,然后将其发送到服务器,服务器将文件大小添加到文件中,然后将其返回给客户端。 客户端向其管道添加具有正确文件大小的新文件。 服务器使用上下文和所需文件创建一个新文件,并尝试发送该文件,但是从不读取该字节。 我在这里做错了什么? 记录 客户 FileRequestHandler.java FileChunkReq
问题内容: 我正在尝试找到一种方法,将不同文件类型的文件从服务器发送到客户端。 我在服务器上有以下代码将文件放入字节数组: 然后,我将fileData作为字符串发送给客户端。这对于txt文件效果很好,但是当涉及到图像时,我发现尽管它可以很好地创建包含数据的文件,但图像无法打开。 我不确定我是否正在按照正确的方式进行操作。谢谢您的帮助。 问题答案: 如果要读取/写入二进制数据,则应使用字节流(Inp
我有一个关于Java插座的技术问题。 例如,假设我有一个Java Sockets服务器和n个多个客户端。是否可以几乎实时地将数据从服务器发送到任何或所有客户端? 更准确地说: 有哪种监听器可以在Sockets客户端中实现 有人能告诉我什么方法是最好的吗?此外,如果有人有一个代码示例,我也会很高兴。 谢谢
我正试图从套接字服务器(Java)向套接字客户端(Python)发送一个映像,但客户端中接收到的映像大小不正确,无法打开。我不知道我做错了什么。有什么建议吗?
问题内容: 我正在尝试在服务器和客户端之间进行文件传输,但是工作非常糟糕。基本上需要发生的是: 1)客户端将txt文件发送到服务器(我称为“ quotidiani.txt”) 2)服务器将其保存在另一个txt文件中(“ receive.txt”) 3)服务器运行脚本上对其进行修改并以其他名称保存(“ output.txt”)的脚本 。4)服务器将文件发送回客户端,客户端以相同的名称(final.t
问题内容: 由于我是Web服务的新手,请您告诉我问题的答案。我的问题是 我想实现一个Web服务,当客户端调用此Web服务时,该服务会向客户端发送pdf文件。 请有人帮我提供一段不错的代码或解释。 现在可以请一个人解决我的错误。 12-23 09:42:48.429:调试/安装(32):DexInv:-开始’/data/app/vmdl33143.tmp’— 12-23 09:42:51.708:调