[英]Why can't send the correct data with sockets? JAVA (Client-Server Program running on local)
我正在嘗試用Java制作服務器客戶端程序。 我正在嘗試在同一系統上運行。 它從客戶端向服務器發送文本文件,包括名稱等。但是,當服務器獲取文件時,它僅打印“ []”字符。 這是否意味着空或意思損壞的數據?
這是服務器;
package temel;
import java.io.File;
import java.io.InputStream;
import java.net.Socket;
import java.net.ServerSocket;
public class VeriAlma {
private static int port;
private static Socket socket;
public VeriAlma(int port)
{
VeriAlma.port=port;
}
public static void veriAl() {
try {
ServerSocket listener = new ServerSocket(port);
socket = listener.accept();
}
catch (java.lang.Exception ex) {
ex.printStackTrace(System.out);
}
}
public String run() {
try {
InputStream in = socket.getInputStream();
String file_name = "x.txt";
File file=new File(file_name);
ByteStream.toFile(in, file);
return file_name;
}
catch (java.lang.Exception ex) {
ex.printStackTrace(System.out);
return "asdasd";
}
}
public void setPort(int port)
{
VeriAlma.port=port;
}
}
這是客戶
package temel;
import java.io.*;
import java.net.*;
import java.lang.*;
import java.io.OutputStream;
import java.io.InputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.net.Socket;
public class VeriGonderme {
// host and port of receiver
private static int port;
private static String host;
public VeriGonderme(int port,String host)
{
this.port=port;
this.host=host;
}
public void veriGonder(String dosyaIsmi) {
try {
Socket socket = new Socket(host, port);
OutputStream os = socket.getOutputStream();
ByteStream.toStream(os, 1);
ByteStream.toStream(os, dosyaIsmi);
ByteStream.toStream(os, new File(dosyaIsmi));
}catch (Exception ex) {
ex.printStackTrace();
}
}
public void setPort(int port)
{
this.port=port;
}
public void setHost(String host)
{
this.host=host;
}
}
主機是“ localhost”端口是4444
但是,當服務器獲取文件時,它只會打印“ []”字符。
我希望看到一些這樣的字符,因為您將值1
作為4字節二進制發送。 即\\0\\0\\0\
如果刪除此文件並僅發送一次文件,則它可能會按預期執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.