JAVA小问题,关于socket的。新手求助

代码如图,程序运行无误,但是为何在accept之前没有serverlistenon...这段话的输出呢?不是应该在accept之后才会造成程序阻塞吗?... 代码如图,程序运行无误,但是为何在accept之前没有 server listen on ... 这段话的输出呢?
不是应该在accept之后才会造成程序阻塞吗?
展开
 我来答
bqlin1987
2015-06-09
知道答主
回答量:2
采纳率:0%
帮助的人:2.4万
展开全部
你好,当Server Socket在等待Socket连接时,它一直阻塞在accept()方法(第33行),程序一定是执行完26行的,你可以跑这一段代码试试看。

package test;

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

public class SocketServer {

public static void main(String[] args) throws IOException {
MyServer server = new MyServer(8080);
server.start();
}

}

class MyServer {

private ServerSocket serverSocket = null;
private int port;

public MyServer(int port) {
this.port = port;
}

public void start() throws IOException {
serverSocket = new ServerSocket(port);
System.out.println("serverSocket listening on " + port);
Socket accept = serverSocket.accept();
System.out.println("accept: " + accept);

}

}
chenfei2341
2015-06-09 · TA获得超过845个赞
知道小有建树答主
回答量:396
采纳率:25%
帮助的人:249万
展开全部
看不出来,理论上是可以输出的。你说的是对的,我在accept之前的输出是可以的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寸寸乱
2015-06-09 · TA获得超过514个赞
知道小有建树答主
回答量:564
采纳率:64%
帮助的人:214万
展开全部
运行一次,把打印放出来看看
追问
运行之后无任何输出,所以我就不贴图了哦。
然后在程序强制结束的时候就会输出,

谢谢你的回答

-------------------------------------------------

我在windows环境中测试发现可以在accept之前输出。真奇怪
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式