当前位置:  技术问答>java相关

服务器连结的问题,请高手指点。

    来源: 互联网  发布时间:2015-01-16

    本文导语:  当我第一次传递值true给startflag时,服务器建立端口,当我第二次传递false值给startflag时,提示java.lang.NullPointerException的错误,当我第三次递值true给startflag时,提示java.net.BindException: Address in use: bind,说明第二次没...

当我第一次传递值true给startflag时,服务器建立端口,当我第二次传递false值给startflag时,提示java.lang.NullPointerException的错误,当我第三次递值true给startflag时,提示java.net.BindException: Address in use: bind,说明第二次没有将端口关闭,为什么,怎么关?请大虾指点一二。


class ServerSocketPort extends Thread
{
public ServerSocketPort(int p,boolean startflag)
{ port=p;
StartFlag=startflag;
}
public void run()
{ int i=1;
try
{
if (StartFlag)
{
s=new ServerSocket(port);
Socket incoming = s.accept();
//add handle
i++;
}
else
{
s.close();
}
sleep(5);
}
catch(Exception e)
{ System.out.println(e);
}
}
private int port;
private boolean StartFlag;
private ServerSocket s;
}

|
因为你在构造器里传参数,而没有别的方法传参,也就是你每次都创建新的对象。
你第二次应该是new ServerSocketPort(port ,false);这样就重新创建了一个对象,而不是使用原来的(第一次创建的对象),所以ServerSocket s为空。
第三次new ServerSocketPort(port,true);一样重新创建对象,若port和原先创建的一样,也就是原先的ServerSocket没有关闭,出现你那样的错误。
解决方法如下:

使用一个对象,
ServerSocketPort ssp = new ServerSocketPort();
ssp.set(1024,true);
ssp.set(2048,false);
ssp.set(1024,false);
.......

class ServerSocketPort extends Thread

public void set(int p,boolean startflag)

port=p;
StartFlag=startflag;
}
public void run()

int i=1;

while(true)
{
try

if (StartFlag)
{
if(ht!=null && !ht.contains(""+port))
{
s=new ServerSocket(port);
Socket incoming = s.accept();
ht.put(""+port,s);
//add handle
i++;
}
}
else
{
if(ht!=null && ht.contains(""+port))
{
s = (ServerSocket)ht.get(""+port);
s.close();
}
}
sleep(5);
}
catch(Exception e)

System.out.println(e);
}
}
}
private Hashtable ht = new Hashtable();
private int port;
private boolean StartFlag;
private ServerSocket s;
}

|
还少了ht.remove()方法:
class ServerSocketPort extends Thread

public void set(int p,boolean startflag)

port=p;
StartFlag=startflag;
}
public void run()

int i=1;

while(true)
{
try

if (StartFlag)
{
if(ht!=null && !ht.contains(""+port))
{
s=new ServerSocket(port);
Socket incoming = s.accept();
ht.put(""+port,s);
//add handle
i++;
}
}
else
{
if(ht!=null && ht.contains(""+port))
{
s = (ServerSocket)ht.get(""+port);
s.close();
ht.remove(""+port);
}
}
sleep(5);
}
catch(Exception e)

System.out.println(e);
}
}
}
private Hashtable ht = new Hashtable();
private int port;
private boolean StartFlag;
private ServerSocket s;
}

    
 
 

您可能感兴趣的文章:

  • 我想在服务器端口获得连结上来机子的IP,不知道有什么方法可以实现!!!?
  • 在SOLARIS下如何安装CVS服务器,请各位指点兄弟!多谢!
  • linux服务器系统性能瓶颈,研究集群技术的朋友来指点下
  • 服务器超时处理的问题,请大侠指点
  • 邮件服务器问题(postfix),请各位大侠指点
  • Linux 服务器下apache报错,请高手指点!
  • 请高人指点,查找服务器的文件.cfg
  • LINUX下的服务器TOMCAT DOWN机了,请大侠指点如何查看DOWN机时间!
  • 在win下开发的struts项目在linux服务器上运行时报以下错误,请高手指点····
  • Windows 2000下找不到samba服务器,高手指点!
  • 跪求在linux环境下安装过.net写的服务器的前辈指点
  • 工作站Redhat Linux7.2如何通过NT4.0 proxy代理服务器上网,我不能通过其验证!请高手指点思路和方法!
  • 请熟悉cvs服务器端配置的高手指点
  • 重大困惑:用win2000,Tomcat的jsp服务器,发布出来的网页默认编码是西欧字码,我们明明已在jsp文件中写上...GB2312...了,请大虾指点!
  • 兄弟我刚学jsp,服务器配了一天还没成功,咋办?!求路过各位的高手指点迷经,谢谢!
  • 怎么在本地编辑,在服务器编译?请各位指点下
  • 各位,我现在的操作系统是win2k professional 我现在想运行.jsp程序。我应该有什么样的准备。用什么工具做jsp.服务器怎么配置。这些东西都那里去下载。请指点。不胜感激!
  • 我想在一台服务器上安装gcc,试了几次都不成功,请各位指点一下.
  • centos 6 搭建vsftpd服务器,遇到错误,请高人帮忙指点
  • 我在linux下搭建了一个ftp服务器,可以总是无法启动,报如下错误,请高手指点
  • samba 服务器的共享遇到的问题,请高手指点!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 问个关于服务器的问题?高手进
  • 关于courier邮件服务器的配置问题,请教高手
  • 求会linux下jabber服务器端配置的高手
  • 怎么设置在Linux上面设置WEB服务器?请各位高手指教!!!
  • 请问诸位高手:如何在服务器上得到正在连接的客户端IP??
  • 如何配置linux下的FTP服务器?请高手提供资料!
  • 请高手给点提示,如何架设linux邮件服务器?
  • 有关jsp上传服务器的问题,请教各位高手(一定给分!!!!!!!!)
  • 网络服务器架设高手必进。。。。。谢谢
  • 服务器问题(网站维护高手请进)
  • 请问各位高手,如何用JAVA编一个代理服务器。
  • 200分!!嵌入式Linux下通过TCP访问服务器,Socket被服务器重置,错误号104??(高手请进)解决后加送100分!!!
  • 急死我了,请高手帮忙!mysql服务器的问题
  • 有关ALPHA系列服务器的问题1高手请进
  • 请高手推荐一款 LINUX版本 用做WEB服务器
  • 各位高手,哪里有。流媒体服务器下载。for Linux的。
  • Servlet高手急救:欲从servlet输出图形,请问linux环境下如何配置,web服务器为tomcat
  • linux虚拟机部署web项目(tomcat服务器)出现了问题,有待高手解决啊。
  • red hat5 + VMware5 配置samba服务器, 求高手解释
  • 请问那位高手能帮我解决在jsp中将本地文件上传到数据库服务器的一个字段中的问题
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 请问在红旗Linux多功能服务器版上(不是数据库服务器版)能否正常安装使用Oracle?红旗Linux数据库服务器版要比红旗Linux多功能服务器版贵
  • nginx 服务器介绍
  • 校园网,www服务器,邮件服务器,数据库服务器等各用什么平台(系统)性能最佳?
  • 代理服务器原理,功能及作用详细介绍
  • 双linux服务器如何能在一台服务器崩溃的情况下在另一台服务器上启动相应服务
  • Apache HTTP服务器2.4中的新功能概览
  • 如何有效判断服务器已经连接不上(服务器关闭,服务器非法退出等原因)
  • php中操作memcache的类及成员列表及php下如何连接memched服务器
  • 在服务器端怎样检测客户端与服务器端的某个会话在一段时间里面没有通信,然后在服务器端终止该会话??
  • nginx服务器基本特性及使用技巧


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3