`
liangguanhui
  • 浏览: 111688 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

如何关闭一个正在accept的ServerSocket?

阅读更多
加入一个ServerSocket正在另一个线程堵塞accept,那如何停止accept或者关闭Socket?
分享到:
评论
4 楼 liangguanhui 2007-05-29  
其实直接close socket也可以,不过会抛出异常,我的意思是有什么比较安全而又简单的办法?难道要加一个标志,然后要关闭的时候把标志设为stop,然后连接listernSocket?这样也未免太麻烦了
3 楼 liangguanhui 2007-05-29  
为什么有这句
new Socket("127.0.0.1", port);
???
2 楼 youbin_ 2007-05-29  
        /**
* 停止监听
*/
public void halt() {
System.out.println("正在停止监听...");
try {
pleaseStop = true;
new Socket("127.0.0.1", port);
if (listenSocket != null) {
listenSocket.close();
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("监听已停止!");
}
1 楼 ddbird 2007-04-25  
Server socket 设置下超时
setSoTimeout
然后在Listen线程中用interrupt

相关推荐

    基于JAVA本地监听与远程端口扫描的毕业设计,通过JAVA的ServerSocket类,创建ServerSocket对象并绑定

    本地端口监听实现通过JAVA的ServerSocket类,创建ServerSocket对象并绑定要监听的本地端口,然后通过accept()方法接受连接请求,在新线程中处理请求。具体代码如下: ServerSocket ss = new ServerSocket(6666); //监听...

    android nanohttpd 手机端 迷你服务器

    anoHTTPD是个很简单的http服务器 简单到只有一个java文件 主要原理是用ServerSocket接受请求 对每一个请求的Socket创建一个线程去处理(HTTPSession) 线程内保存Socket 用Properties保存切割出来的head信息和url后...

    tcp/udp socket编程

    a) 创建一个ServerSocket对象 b) 调用accept()方法接受客户端请求 c) 从Socket中获取I/O流 d) 对I/O流进行读写操作,完成与客户端的交互 e) 关闭I/O流和Socket ② 创建TCP客户端步骤: a) 创建一个Socket对象 ...

    Java常见2021年最新面试题,附答案解析

    **1、** 服务器程序创建一个ServerSocket,然后再用accept方法等待客户来连接 **2、** 客户端程序创建一个Socket并请求与服务器建立连接 **3、** 服务器接收客户的连接请求,并创建一个新的Socket与该客户建立专线...

    Socket编程(适合Java初学者查看).zip

    socket = serversocket.accept(); ThreadTest tread = new ThreadTest(socket, num); tread.start(); System.out.println("客户号:" + num); } catch (IOException e) { e.printStackTrace(); } }

    Java TCPIP Socket编程 源码

    一个Socket实例代表了TCP连接的一个客户端,而一个ServerSocket实例代表了TCP连接的一个服务器端,一般在TCP Socket编程中,客户端有多个,而服务器端只有一个,客户端TCP向服务器端TCP发送连接请求,服务器端的...

    在线聊天系统源代码

    第一步,创建一个serversocket类的对象。 第二步,建立侦听。建立侦听是由serversocket类的accept函数完成。 第三步,获取用于与远程客户端通信的outputstream对象和intputstream对象。 第四步,利用DataInputstream...

    三步学会Java Socket编程

    Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。  . ...

    Java创建一个简单的时间服务器.rar

    这是用Java创建一个简单的时间服务器的例子,类似于微软为Windows定制的时间服务器,用于校准时间。可以通过这个网络时间服务器了解一些套按字、输入流以及缓冲区方面的相关基础知识。服务器创建部分,可参考如下...

    基于C#的网络聊天系统

    在上面代码中我们用了一个死循环,在循环体里面ServerSocket调用其accept方法试图接收来自客户端的连接请求。当没有接收到请求的时候,程序会在这里阻塞直到接收到来自客户端的连接请求,之后会跟当前建立好连接的...

    j2me 手机聊天程序

    服务器端用ServerSocket对象监听9999号端口,当客户端发出请求,服务器用ServerSocket的accept()接受请求并打开端口建立Socket连接,创建一个线程来管理这个连接(ChatThread对象)。每一个连接在服务器端都由一个...

    JAVA本地监听与远程端口扫描

    当有客户端连接时,accept()方法会返回一个Socket对象 使用Socket对象进行数据传输 远程端口扫描的实现步骤如下: 创建Socket对象并指定远程主机和端口号 使用Socket对象进行数据传输 可以使用Java的网络编程库Nmap...

    用Java实现多线程服务器程序

    客户端软件通常使用java.net包中的核心类Socket与服务器的某个端口建立连接,而服务器程序不同于客户机,它需要初始化一个端口进行监听,遇到连接呼叫,才与相应的客户机建立连接。Java.net包的ServerSocket类包含了...

    java学习后,用线程做的聊天程序

    Socket client = serversocket.accept(); ServerRead sr1=new ServerRead(client); ServerWrite sw1=new ServerWrite(client); sr1.start(); sw1.start(); } }catch (IOException e) ...

    基于TCP的网络聊天室

    它会进一步调用Accept(ReceiveSocket)来接收它,而此时服务器端还须建立一个新的CSocket对象,用它来和客户端进行交流。如下例: CSocket ReceiveSocket; ServerSocket.Accept(ReceiveSocket); (6)如果想在两个...

    基于TCP的网络聊天室的设计

    它会进一步调用Accept(ReceiveSocket)来接收它,而此时服务器端还须建立一个新的CSocket对象,用它来和客户端进行交流。如下例: CSocket ReceiveSocket; ServerSocket.Accept(ReceiveSocket); (6)如果想在两个...

    cc_to_sever.zip

    ① 服务器端创建ServerSocket,循环调用accept()等待客户端连接 ② 客户端创建一个socket并请求和服务器端连接 ③ 服务器端接受请求,创建socket与该客户建立专线连接 ④ 建立连接的两个socket在一个单独的线程上...

    Socket 接口用法详解

    在 Java 中,基于 TCP 协议实现网络通信的类有两个,在客户端的 Socket 类和在服务器端的ServerSocket 类,ServerSocket 类的功能是建立一个 Server,并通过 accept()方法随时监听客户端的连接请求。  扩展:  ...

    基于java实现Socket套接字一对一聊天系统源码+项目说明.zip

    Socket,又称套接字,在TCP/IP协议分层架构中,属应用层和传输层之间的一个抽象层(也有的说是属于传输层),它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。 ![在这里插入图片描述...

    java语言编写的 聊天程序

    服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为8080,然后无限循环调用accept()方法接受客户程序的连接Q系统的设计于实现

Global site tag (gtag.js) - Google Analytics