Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TCP套接字Java(服务器)和python(客户端)_Java_Python_Sockets - Fatal编程技术网

TCP套接字Java(服务器)和python(客户端)

TCP套接字Java(服务器)和python(客户端),java,python,sockets,Java,Python,Sockets,试图通过java服务器和python客户端发送文件 Client.py Server.java 它给出了以下错误: java.io.EOFException at java.io.DataInputStream.readFully(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at Server.main(S

试图通过java服务器和python客户端发送文件

Client.py Server.java 它给出了以下错误:

java.io.EOFException
at java.io.DataInputStream.readFully(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at Server.main(Server.java:10)

谢谢你的帮助。我有python服务器和java客户端,它工作得很好。此外,它们在python客户机服务器和java客户机服务器之间也能很好地工作

这主要与您的端到端文件处理有关。您的java服务器正在尝试读取一个封闭文件“readUTF”需要一种特定的数据格式,请参见
readUTF()
仅理解由
writeUTF()编写的数据,而Python中没有这种功能。只需读写字节。在发送时去掉添加的换行符,并将
chr(1)
发送到信号流的末尾。关闭套接字已经做到了这一点。无论如何,您都没有试图在接收代码中正确处理这一点。您不能假设一次读取就能得到整个文件。@user207421我明白了,但是,我怎么才能做到呢?我不知道:(@abdullahalali)我该怎么解决呢?:(
import java.net.*;
import java.io.*;

public class Server {
public static void main (String []args) {
               try { 
                      ServerSocket ss = new ServerSocket(6030); 
                      Socket s = ss.accept(); 
                      DataInputStream dis = new DataInputStream(s.getInputStream()); 
                      String k = dis.readUTF(); 
                      System.out.println("File Transferred"); 
                      FileOutputStream fos = new FileOutputStream("D:\\yo.txt"); 
                      byte[] b = k.getBytes(); 
                      fos.write(k.getBytes()); 
                     } catch (IOException ie) { 
                       ie.printStackTrace(); 
                     }
          }
}
java.io.EOFException
at java.io.DataInputStream.readFully(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at Server.main(Server.java:10)