黑马程序员技术交流社区
标题:
上传文件的问题的
[打印本页]
作者:
8161776
时间:
2012-5-23 15:27
标题:
上传文件的问题的
本帖最后由 杨尧 于 2012-5-23 15:29 编辑
public class TCPServer {
public static void main(String[] args){
System.out.println("服务端已启动");
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(7878);
Socket clentSocket = serverSocket.accept();
new Thread(new ClentRun(clentSocket));//这一行为什么会编译错误呢?纠结死我了
} catch (IOException e) {
e.printStackTrace();
} finally {
if(serverSocket != null){
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public class ClentRun implements Runnable{
Socket clent = null;
public ClentRun(Socket clent){
this.clent = clent;
}
public void run() {
System.out.println(clent.getInetAddress().getHostAddress()+"连接成功");
try {
BufferedInputStream bis=new BufferedInputStream(clent.getInputStream());
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("D://2.txt"));
PrintWriter pw=new PrintWriter(clent.getOutputStream(),true);
int len=0;
boolean flag = true;
while(flag){
System.out.println((char)len);
bos.write(len);
bos.flush();
}
pw.println("上传成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
复制代码
第8行为什么会编译错误呢?
这个程序可以不看别的地方,下面是我定义的一个内部类,是线程,在上面为什么不能启动呢?我还纠结,高手帮忙看看
作者:
刘克方
时间:
2012-5-23 16:03
本帖最后由 刘克方 于 2012-5-23 16:11 编辑
new Thread(new ClentRun(clentSocket));
将这一句代码
改为
new Thread(new
TCPServer().new
ClentRun(clentSocket)
);
作者:
刘聪
时间:
2012-5-23 17:30
就是因为楼主定义的内部类的关系。关于外部类怎样引用内部类要看内部类是静态的或非静态的:
非静态的:
new Outer().new Inter()
静态的:
Outer.Inter
内部类在基础视频中也有多次强调,而且群里也有相关主题,楼主可以找来看一下
作者:
付左军
时间:
2012-5-23 18:50
public class TCPServer {
public static void main(String[] args){
System.out.println("服务端已启动");
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(7878);
Socket clentSocket = serverSocket.accept();
new Thread(new ClentRun(clentSocket))
.start();
;//这一行为什么会编译错误呢?纠结死我了
} catch (IOException e) {
e.printStackTrace();
} finally {
if(serverSocket != null){
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public class ClentRun implements Runnable{
Socket clent = null;
public ClentRun(Socket clent){
this.clent = clent;
}
public void run() {
System.out.println(clent.getInetAddress().getHostAddress()+"连接成功");
try {
BufferedInputStream bis=new BufferedInputStream(clent.getInputStream());
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("D://2.txt"));
PrintWriter pw=new PrintWriter(clent.getOutputStream(),true);
int len=0;
boolean flag = true;
while(flag){
System.out.println((char)len);
bos.write(len);
bos.flush();
}
pw.println("上传成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2