首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

ServerSocket关闭错误

2012-03-29 
ServerSocket关闭异常我在一个线程里面启动了一个serversocket,代码如下Java codepackage com.boryou.modu

ServerSocket关闭异常
我在一个线程里面启动了一个serversocket,代码如下

Java code
package com.boryou.module;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;import javax.swing.JOptionPane;/** * 窗口服务器,用于在窗口启动时,启动后台服务,接受窗口中,地图组件的本地窗口调用请求 *  *  * */public class FrameServer implements Runnable{    private ServerSocket ss = null;    private Socket sock = null;    private BufferedReader in = null;    private boolean flg = true;        public FrameServer() {        try {            ss = new ServerSocket(80);            flg = true;        } catch (IOException e) {            System.out.println("服务套接字启动失败!");            e.printStackTrace();        }            }    public void run() {        while (flg) {            try {                sock = ss.accept();                in = new BufferedReader(new InputStreamReader(sock.getInputStream()));                String line = in.readLine();//                System.out.println("you input is :" + line);//                MainFrame mf1 = new MainFrame();                                //从读取的参数,调用响应的窗口                JOptionPane.showMessageDialog(null, "", "服务器套接字", JOptionPane.ERROR_MESSAGE);                                in.close();                sock.close();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }        public void  stopServer() {        flg = false;        if(ss.isBound() && !ss.isClosed())        {            try {                ss.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}

在外部调用,启动这个线程,然后在调用stopServer方法的时候,总是失败,异常如下:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.boryou.module.MainFrame.processEvent(MainFrame.java:50)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

搞不懂怎么回事,不知道哪里出问题了.


[解决办法]
ss为空了吧
要在保证ss不为空的前提下才去stop
[解决办法]
at com.boryou.module.MainFrame.processEvent(MainFrame.java:50)
这行是个啥?应该不是你贴出来的这个类吧?

热点排行