高分求解简单问题!!!!

zhpen 2005-10-18 05:22:34
我用的是jcreater
有两个文件:
分别是ReverseServer.java和Servicer.java



ReverseServer.java:

import java.net.*;
public class ReverseServer {

/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
// TODO: Add your code here
ServerSocket ss = new ServerSocket(8001);
while(true)
{
Socket s = ss.accept();
new Thread(new Servicer(s)).start();
}
ss.close();
}
}



Servicer.java:

import java.net.*;
import java.io.*;
public class Servicer implements Runnable {
/**
* Method run
*
*
*/private Socket s=null;
public void Servicer(Socket s)
{
this.s=s;
}
public void run()
{

}
}

编译ReverseServer.java的时候出现:\jcreater\MyProjects\ReverseServer\ReverseServer\ReverseServer.java:21: cannot resolve symbol
symbol : constructor Servicer (java.net.Socket)
location: class Servicer
new Thread(new Servicer(s)).start();
^
1 error


请问哪里错了????
...全文
217 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wb0622 2005-10-19
  • 打赏
  • 举报
回复
用线程时要继承Thread类或实现Runnable接口,
构造函数是无返回类型的,不用加void,void是指无返回值.
Mark_Chen 2005-10-19
  • 打赏
  • 举报
回复
构造函数写错了,构造函数是没有返回值的
要去掉 void
zgysc 2005-10-19
  • 打赏
  • 举报
回复
public void Servicer(Socket s)有问题,去掉void
lcfzgb 2005-10-18
  • 打赏
  • 举报
回复
线程没有问题,应该是Servicer的构造函数的问题
默认构造函数是无参的。


◇ 构造方法具有和类名相同的名称,而且不返回任何数据类型。

Servicer(Socket s)
{
super();
this.s=s;
}

Riddick2046 2005-10-18
  • 打赏
  • 举报
回复
constructor Servicer (java.net.Socket)

老大构造函数啊.

new Thread(new Servicer(s)).start();

Thread 继成了吗?



believefym 2005-10-18
  • 打赏
  • 举报
回复
Servicer里面的没有构造函数,
public void Servicer(Socket s)
{
this.s=s;
}

这个只是普通的方法,需要构造函数的话去掉void
Rex_ruohuili 2005-10-18
  • 打赏
  • 举报
回复
在Servicer类中把Servicer方法改成构造方法

然后在ReverseServer类中抛异常


还有就是,你下面的代码很有意思:
while(true)
{
Socket s = ss.accept();
new Thread(new Servicer(s)).start();
}
ss.close();
上面都无限循环了
ss.close();这一句就执行不到了吧...............

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧