我需要一直监听一个文件的内容 然后有变化就传给客户端 我就想服务器端监听那个文件 然后让客户端不停的读那个文件
import java.net.*;
import java.io.*;public class ChatClient {
public static void main(String[] args) throws Exception {
while (true){
Socket s = new Socket("localhost", 8888); DataInputStream dis = new DataInputStream(s.getInputStream());
//Thread.sleep(3000);
System.out.println(dis.readUTF());
dis.close();
s.close();
}
}
}
import java.net.*;
import java.io.*;public class CharServer {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(8888);
Socket s = ss.accept();
System.out.println("a client connect!");
FileInputStream fis = new FileInputStream("d:\\1.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
String str = br.readLine(); dos.writeUTF(str); dos.close();
br.close();
fis.close();
s.close();
}}但是客户端有错误Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.DataInputStream.readUnsignedShort(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at ChatClient.main(ChatClient.java:12)
import java.net.*;
import java.io.*;public class ChatClient {
public static void main(String[] args) throws Exception {
while (true){
Socket s = new Socket("localhost", 8888); DataInputStream dis = new DataInputStream(s.getInputStream());
//Thread.sleep(3000);
System.out.println(dis.readUTF());
dis.close();
s.close();
}
}
}
import java.net.*;
import java.io.*;public class CharServer {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(8888);
Socket s = ss.accept();
System.out.println("a client connect!");
FileInputStream fis = new FileInputStream("d:\\1.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
String str = br.readLine(); dos.writeUTF(str); dos.close();
br.close();
fis.close();
s.close();
}}但是客户端有错误Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.DataInputStream.readUnsignedShort(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at ChatClient.main(ChatClient.java:12)
while(true){
//访问服务端的代码
}
你光看了客户端的报错,你有没有看看服务端的显示呢?你客户端确实一直发送请求,但是服务端那样写只是会运行一次的。
服务端一样需要while(true){
}
ServerSocket server=new ServerSocket(8888);//绑定端口
while(true)
{
Socket client=server.accept();//监听
ChildTh child=new ChildTh(client);
Thread t=new Thread(child);
t.start();//处理请求给予返回信息
}
}