У меня есть назначение для создания приложения для передачи файлов на клиент-сервер. Это может быть простой пример. Я попробовал примеры, заданные в похожих вопросах в SOF, но они не смогли перенести файл.Загрузка и загрузка файлов между сервером-клиентом
Я пытаюсь связаться с клиентом и сервером через сокеты. Если бы мог быть кто-то, кто мог бы мне помочь, я буду рад.
Клиент загрузит файл на сервер. Также клиент может загрузить файл с сервера. Вот как я создам приложение.
Вот код на стороне клиента:
package wdc;
import java.io.*;
import java.io.ByteArrayOutputStream;
import java.net.*;
class TCPClient {
public static void main(String args[]) {
byte[] aByte = new byte[1];
int bytesRead;
Socket clientSocket = null;
InputStream is = null;
try {
clientSocket = new Socket("127.0.0.1", 3248);
is = clientSocket.getInputStream();
} catch (IOException ex) {
// Do exception handling
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
if (is != null) {
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try {
fos = new FileOutputStream("C:\\testout.pdf");
bos = new BufferedOutputStream(fos);
bytesRead = is.read(aByte, 0, aByte.length);
do {
baos.write(aByte);
bytesRead = is.read(aByte);
} while (bytesRead != -1);
bos.write(baos.toByteArray());
bos.flush();
bos.close();
clientSocket.close();
} catch (IOException ex) {
// Do exception handling
}
}
}
}
Вот код на стороне сервера:
package wds;
import java.io.*;
import java.net.*;
class TCPServer {
public static void main(String args[]) {
while (true) {
ServerSocket welcomeSocket = null;
Socket connectionSocket = null;
BufferedOutputStream outToClient = null;
try {
welcomeSocket = new ServerSocket(3248);
connectionSocket = welcomeSocket.accept();
outToClient = new BufferedOutputStream(connectionSocket.getOutputStream());
} catch (IOException ex) {
// Do exception handling
}
if (outToClient != null) {
File myFile = new File("C:\\testserver.pdf");
byte[] mybytearray = new byte[(int) myFile.length()];
FileInputStream fis = null;
try {
fis = new FileInputStream(myFile);
} catch (FileNotFoundException ex) {
// Do exception handling
}
BufferedInputStream bis = new BufferedInputStream(fis);
try {
bis.read(mybytearray, 0, mybytearray.length);
outToClient.write(mybytearray, 0, mybytearray.length);
outToClient.flush();
outToClient.close();
connectionSocket.close();
// File sent, exit the main method
return;
} catch (IOException ex) {
// Do exception handling
}
}
}
}
}
я не мог запустить эти исходные файлы, и я не знаю, почему.
Какие * конкретные * проблемы у вас есть? В чем вопрос? –
Просьба уточнить «Я не мог запустить эти исходные файлы» более подробно. Как именно вы пытались? Что именно происходит вместо этого? – BalusC
Я построил проект. Не было ошибок. Я указал каждый из них как проект, на стороне сервера: wds, client side: wdc. При создании проекта в NetBeans я назначил классы в качестве основного класса в каждом проекте. Чем я пытался их запустить, но передача файла не произошла. Должен ли я настроить сервер на моем ПК. Я знаю, что мне это не нужно. Есть ли ошибка в этом коде, которая не позволяет загрузить файл с клиента на сервер? Или любые другие ошибки, которые я делаю? –