`
liangguanhui
  • 浏览: 112871 次
  • 性别: 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

相关推荐

    serverSocket

    1. **实例化ServerSocket**:首先,我们需要创建一个`ServerSocket`对象,指定一个端口号。例如: ```java ServerSocket serverSocket = new ServerSocket(8080); ``` 这行代码会在本地主机的8080端口上打开一个...

    Socket+ServerSocket代码

    当有客户端尝试连接时,ServerSocket的accept()方法会被阻塞,直到一个连接建立为止。 接下来,我们讨论Socket类。Socket是Java.net包中的另一个重要类,它表示网络上的两个进程间通信的连接。在客户端,我们需要...

    socket-ServerSocket例子

    `ServerSocket`是Java中的服务器端套接字类,它允许服务器创建一个监听特定端口的套接字,等待客户端的连接请求。`ServerSocket`的基本用法如下: ```java import java.net.ServerSocket; import java.io....

    ServerSocket的小程序

    这个“ServerSocket的小程序”很可能是一个简单的网络聊天应用程序,由`ChatServer`和`ChatClient`两个主要部分组成。让我们深入探讨`ServerSocket`的工作原理以及这两个Java文件可能实现的功能。 `ServerSocket`类...

    ServerSocket用法详解

    创建一个`ServerSocket`实例时,通常需要指定一个端口号,这将决定服务器监听的通信通道。例如: ```java ServerSocket serverSocket = new ServerSocket(8080); ``` 这里的8080是服务器的端口号,选择一个未被...

    一个简单的socket/serversocket例子

    在服务器端,我们通常会创建一个ServerSocket实例,指定一个端口号,然后调用其`accept()`方法来监听并接受来自客户端的连接。当有客户端连接时,`accept()`方法会返回一个新的Socket对象,表示这个特定的连接。例如...

    Android ServerSocket

    因为`accept()`方法会阻塞,如果希望同时处理多个客户端,需要在一个单独的线程中调用`accept()`。这可以保证服务器不会因为等待一个连接而忽略其他客户端的请求。 7. **异常处理**: 在实现过程中,务必处理可能...

    Java多线程_ServerSocket服务端与客户端通信案例

    3. 主线程返回到ServerSocket的accept方法继续等待下一个客户端的连接请求。 4. 这样,主线程可以持续接收新的客户端连接请求,而各个子线程分别处理各自客户端的请求。 通过以上步骤,我们可以实现一个基本的多...

    Socket与ServerSocket编程实践聊天

    1. **创建ServerSocket**:服务器启动时,首先创建一个ServerSocket实例,并指定一个端口号。例如: ```java ServerSocket serverSocket = new ServerSocket(12345); ``` 2. **监听连接**:使用ServerSocket的`...

    BCB6中ServerSocket控件的使用

    在BCB6(Borland C++ Builder 6)中,ServerSocket控件是一个非常重要的网络编程工具,它用于创建服务器端的套接字,使得客户端可以与之建立连接进行数据交换。ServerSocket控件是基于TCP/IP协议的,因此适用于需要...

    Android ServerSocket 示例

    在Android平台上创建一个`ServerSocket`示例是一个有趣且实用的技术挑战,因为它涉及到网络通信,这对于移动设备来说并不常见。`ServerSocket`是Java提供的一个类,用于在服务器端建立监听套接字,等待客户端的连接...

    ServerSocket类.pdf

    - **连接**:当一个连接请求到达时,`accept()`方法返回一个新的`Socket`对象,服务器可以通过这个`Socket`与客户端进行通信。 - **通信**:使用`Socket`的输入/输出流与客户端进行数据交换。 - **关闭**:完成通信...

    ServerSocket

    `ServerSocket`是Java编程语言中的一个核心类,位于`java.net`包中,它用于在服务器端创建监听网络连接的套接字。这个类在分布式系统和网络编程中扮演着重要角色,允许服务器接收来自客户端的连接请求。在本文中,...

    Test_ServerSocket.zip

    在这个"Test_ServerSocket.zip"压缩包中,我们很显然会探讨如何使用Socket实现一个服务器端,来处理多个客户端的连接和通信。这个场景对于初学者来说是极其有价值的,因为它能帮助理解网络通信的基本原理和Socket...

    ServerSocket ClientSock 应用实例

    创建一个`ServerSocket`对象时,通常需要指定一个端口号。例如: ```java ServerSocket server = new ServerSocket(8080); ``` 这行代码会创建一个监听8080端口的服务器。一旦有客户端尝试连接,`ServerSocket`就...

    java-chatroom.rar_java ServerSocket

    - 由于ServerSocket的accept()方法是阻塞的,因此为了同时处理多个客户端的连接,服务器端通常会为每个连接创建一个新的线程。这样,即使服务器正在处理某个客户端的请求,也能接收其他客户端的连接。 7. **安全性...

    socket serverSocket

    在Java编程语言中,`ServerSocket`和`Socket`是实现网络通信的核心类,它们用于构建客户端/服务器架构的应用程序,比如一个简单的聊天系统。在这个系统中,`ServerSocket`扮演服务器端的角色,监听特定端口上的连接...

    ServerSocket_demo

    首先,`ServerSocket`类位于`java.net`包下,它的主要职责是监听指定的端口号,当有客户端通过TCP协议发起连接请求时,`ServerSocket`会创建一个`Socket`对象来与之建立连接。在创建`ServerSocket`实例时,通常需要...

Global site tag (gtag.js) - Google Analytics