积存半年之久的问题,WEB推技术中如何实现客户端与服务器端连接不断开?
小妹不才,查了很多WEB推技术的资料,可是始终没搞明白如何持续往IE客户端输出数据,恳求高手指点。
我现在只能完成一次输出,具体过程如下:
1.客户端IE输入指定网址,假设访问端口8080;
2.服务器端通过监听8080端口,一旦发现有连接,即创建一个socket,并建立一个线程。
3.在线程中创建该socket得输出与输入对象,在socket.close前可以成功通过输出对象往IE输出数据,但无法持续输出;若使用线程.sleep,在客户端中展现也是先一直等待,直到sleep时间结束后一次输出所有记录,而不是分次持续输出。
附上我的测试代码,请各位达人一定教教我啊,为了这个简单的东西郁闷了好久。先谢过~
//类ChatServer 主服务,服务器端监控类
import java.io.*;
import java.net.*;
import java.util.Date;
public class ChatServer{
public static void main(String[] args) throws Exception{
(new ChatServer()).monitor();
}
public void monitor() throws Exception {
int port = 8080;
int i=1;
ServerSocket srvSocket = new ServerSocket(port);
System.out.println( "Listenning at " + port + " ... ");
System.out.println( "Accepting connection... ");
while (true) {
try {
Socket socket = srvSocket.accept();
long session_id = new Date().getTime();
System.out.println( "new socket: "+i++);
Thread t = new ThreadedChatHandle(socket);
t.start();
} catch (
IOException e) {
System.out.println( "Exception occurs when accept(): " + e.getMessage());
}
}
}
}
//类ThreadedChatHandle 线程,处理类
import java.io.*;
import java.net.*;
public class ThreadedChatHandle extends Thread{
private Socket socket;
private BufferedReader in;
private PrintStream os ;