服务器端accept访问阻塞,导致两个客户端无法同时访问服务器 5C

package server;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

public static void main(String[] args){
    ServerSocket serverSocket = null;

    try {
        serverSocket = new ServerSocket(8888);
        System.out.println("服务器端准备就绪");
        while(true){
            Socket recieve = serverSocket.accept();
            ThreadInServer TS = new ThreadInServer(recieve);
            TS.start();

        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

其中ThreadInServer是新开的线程,用来进行文件传输
当两个客户端同时访问时,会显示“正在等待可用的套接字”
如果我想两个及以上客户端同时访问这个服务器,这里的代码如何改进?

2个回答

这边没有什么错误的,客户端的错误信息是怎样显示出来的呢,看看具体错误的地方,是哪

sinat_36832192
sinat_36832192 没问题了...浏览器的锅
大约 2 年之前 回复
sinat_36832192
sinat_36832192 地址是 http://localhost8888,8888是端口号这样子
大约 2 年之前 回复
sinat_36832192
sinat_36832192 是要建立一个可以在web浏览器上读取本地资源的服务器,ThreadInServer是一个从本地读取文件的线程,我在浏览器上使用http://localhost8888访问本地文件时,打开一个 http://localhost8888页面之后,如果再使用 http://localhost8888访问,浏览器就会显示“正在等待可用的套接字”,我认为问题出在accept的阻塞上不知道如何改进。
大约 2 年之前 回复

这样写有stackoverflow的风险,建议使用线程池

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问