Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
如何从模拟写入的文本文件中读取JAVA_Java_Sockets_File Handling - Fatal编程技术网

如何从模拟写入的文本文件中读取JAVA

如何从模拟写入的文本文件中读取JAVA,java,sockets,file-handling,Java,Sockets,File Handling,我有两个Java文件,分别是服务器和客户端。服务器在服务器中执行从客户端发送的命令,并将输出记录到文本文件中。现在,在服务器执行程序的同时,客户机尝试读取同一文本文件,以在客户机中显示结果 我所做的: 我创建了两个服务器套接字—一个用于读取文件,另一个用于执行命令。 我有两个客户端,一个客户端套接字向服务器写入命令,另一个从服务器读取命令 面临的问题:并发问题(我猜) 这就是我面临的错误 Waiting for client on port 9090... Just connected to /

我有两个Java文件,分别是服务器和客户端。服务器在服务器中执行从客户端发送的命令,并将输出记录到文本文件中。现在,在服务器执行程序的同时,客户机尝试读取同一文本文件,以在客户机中显示结果

我所做的: 我创建了两个服务器套接字—一个用于读取文件,另一个用于执行命令。 我有两个客户端,一个客户端套接字向服务器写入命令,另一个从服务器读取命令

面临的问题:并发问题(我猜) 这就是我面临的错误

Waiting for client on port 9090...
Just connected to /127.0.0.1:64057
MIX1 is reading the data from the port /127.0.0.1:64057
java.net.SocketException: Software caused connection abort: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
java.net.SocketException: Software caused connection abort: socket write error
java.net.BindException: Address already in use: JVM_Bind
Waiting for client on port 9090...

at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at java.io.DataOutputStream.write(DataOutputStream.java:107)
at java.io.DataOutputStream.writeUTF(DataOutputStream.java:401)
at java.io.DataOutputStream.writeUTF(DataOutputStream.java:323)
at readserver.ReadServer.main(ReadServer.java:63)

您正在尝试绑定到同一端口

java.net.BindException: Address already in use: JVM_Bind

表示您正试图绑定到已使用的端口。

从文件中读取(此时另一个线程或进程正在写入该文件)并不是最佳的实现。这很容易导致数据不一致或数据丢失。尽量用信号量或其他机制来避免这种情况


正如其他人已经提到的,您显示的异常是由于网络问题。

这是网络问题,而不是使用文件的问题。另外,从你同时写入的文件中读取的结果是未定义的,所以尽量避免它…我刚刚回来;我离开了,因为这个错误非常不清楚:文件系统上似乎有一个文件'File.txt',一个java服务器应用程序写入该文件,一个客户端应用程序读取该文件。然后是插座问题。最后一个问题似乎是一个不封闭的小棚或诸如此类。你需要再解释一点,仍然要简洁。什么是网络问题?我如何解决它?这不是执行停止所导致的错误,而是java.net.SocketException:软件导致的连接中止:java.net.SocketOutputStream.socketWrite0(本机方法)java.net.SocketException:软件导致的连接中止:套接字写入错误