黑马程序员技术交流社区

标题: 初学者请各位仁兄给指点指点——网络编程问题 [打印本页]

作者: 风起云涌    时间: 2014-5-11 23:09
标题: 初学者请各位仁兄给指点指点——网络编程问题
  1. package Myserver;

  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.PrintWriter;
  5. import java.net.ServerSocket;
  6. import java.net.Socket;

  7. public class Server {
  8.         public static void main(String[] args) throws IOException{
  9.         ServerSocket ss = new ServerSocket(8080);//报错不知道啥意思
  10.         Socket s = ss.accept();
  11.         System.out.println(s.getInetAddress().getHostAddress()+"........connected");
  12.        
  13.         InputStream in = s.getInputStream();
  14.         byte[] buf = new byte[1024];
  15.        
  16.         int len = in.read(buf);
  17.         String str = new String(buf,0,len);
  18.         System.out.println(str);
  19.        
  20.         PrintWriter out = new PrintWriter(s.getOutputStream(),true);
  21.         out.println("<font size='7' color='red'>欢迎光临</font>");
  22.        
  23.         s.close();
  24.         ss.close();
  25. }
  26. }
复制代码
报错是at java.net.ServerSocket.<init>(ServerSocket.java:97)        at Myserver.Server.main(Server.java:11)



作者: 张耀扬    时间: 2014-5-12 13:43
我运行了一下, 没有报错啊............
作者: weimoliang    时间: 2014-5-13 07:56
我把你的代码整个复制下了,也搞了老半天。问题是这样的。
1.看好了,你的这个Java代码是带包的,就是那个 package Myserver;如果你直接用 javac Server.java编译,编译时不会有问题,但是java Server运行的时候就会有异常,java.lang.NoClassDefFoundError;
2.所以的这段代码编译的时候需要打包,使用javac -d . Server.java  进行编译。这样会把你的class 文件放在一个包下。
3.运行。运行的时候不能使用java Server了,要使用java package.classname 运行,即java Myserver.Server;
作者: 风起云涌    时间: 2014-5-13 08:09
weimoliang 发表于 2014-5-13 07:56
我把你的代码整个复制下了,也搞了老半天。问题是这样的。
1.看好了,你的这个Java代码是带包的,就是那个  ...

这个样子啊,谢了

作者: 蓝雨星空    时间: 2014-5-13 08:12
第11行报错应该是端口被其他程序占用了,建议换其他端口
作者: weimoliang    时间: 2014-5-13 08:17
蓝雨星空 发表于 2014-5-13 08:12
第11行报错应该是端口被其他程序占用了,建议换其他端口

对,这个可能是有的,但是端口如果被占用会报java.net.BindException异常,:handshake




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2