A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张华廷 中级黑马   /  2012-6-23 11:05  /  2234 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张华廷 于 2012-6-23 19:45 编辑

import java.io.*;
import java.net.*;
/*
   tcp 传输,客户端和服务端的互访
   
   
*/

// 建立socket服务,指定连接主机和端口
//获取socket流中的输出流,将数据写到流中,通过网络发给服务端
//获取socket流中的输入流,将服务端反馈的数据获取到,并打印
//关闭客户端
class TcpClient2
{
     public static void main(String[] args) throws Exception
     {
        Socket s=new Socket("192.168.1.254",10004);
        
        OutputStream out = s.getOutputStream();//拿到输出流对象
        
        out.write("服务端,你好".getBytes());
        
        InputStream in =s.getInputStream();
        
        byte[] buf =new byte[1024];//建立缓冲区
        
        int len = in.read(buf);
        
        System.out.println(new String(buf,0,len));
        
        s.close();
        
        
     }
}

class TcpServer2
{
  public static void main(String[] args) throws Exception
  {
    ServerSocket ss = new ServerSocket(10004);
   
    Socket s = ss.accept();
   
    String ip = s.getInetAddress().getHostAddress();//拿到客户端地址
   
    System.out.println(ip+"........congnent");
   
    InputStream in = s.getInputStream();//先读一次数据
   
    byte[] buf = new byte[10004];//缓冲区
   
    int len = in.read(buf);
   
    System.out.println(new String(buf,0,len));
   
    OutputStream out = s.getOutputStream();//服务端反向
   
    out.write("收到,你也好".getBytes());
   
    s.close();
   
    ss.close();
   
  }
}
服务端编译通过,客户端编译出现Exception in thread "main" java.lang.NoClassDefFoundError: TcpClient
Caused by: java.lang.ClassNotFoundException: TcpClient
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: TcpClient.  Program will exit.

4 个回复

倒序浏览
你编译的文件是TcpClient,而你这里的客户端是TcpClient2。

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 恭喜~~

查看全部评分

回复 使用道具 举报
你编译的文件命要和你的类名一致呀,要不肯定出现NoClassDefFoundError。
系统找不到你需要编译的文件,你应该在dos窗口输入javac TcpClient2.java。

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
这个错误的意思是找不到相应的class文件,出现这种错误的原因大致有两种,第一种java命令后边的类名和实际文件中的类名不一致,导致找不到class。第二种没有编译就去执行这样即使你的java命令后边的类名和实际文件中的类名一致也会出现这样的错误,原因是在那个位置根本都找不到对应的class
----------------------------------------
版主求分

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
import java.io.*;
import java.net.*;
/*
    tcp 传输,客户端和服务端的互访
   
   
*/

// 建立socket服务,指定连接主机和端口
//获取socket流中的输出流,将数据写到流中,通过网络发给服务端
//获取socket流中的输入流,将服务端反馈的数据获取到,并打印
//关闭客户端
class TcpClient2
{
      public static void main(String[] args) throws Exception
      {
         Socket s=new Socket("192.168.1.254",10004);//已经解决了,因为客户端的ip的问题改为127.0.0.1就可以访问了
         
         OutputStream out = s.getOutputStream();//拿到输出流对象
         
         out.write("服务端,你好".getBytes());
         
         InputStream in =s.getInputStream();
         
         byte[] buf =new byte[1024];//建立缓冲区
         
         int len = in.read(buf);
         
         System.out.println(new String(buf,0,len));
         
         s.close();
         
         
      }
}

class TcpServer2
{
   public static void main(String[] args) throws Exception
   {
     ServerSocket ss = new ServerSocket(10004);
     
    Socket s = ss.accept();
     
    String ip = s.getInetAddress().getHostAddress();//拿到客户端地址
     
    System.out.println(ip+"........congnent");
     
    InputStream in = s.getInputStream();//先读一次数据
     
    byte[] buf = new byte[10004];//缓冲区
     
    int len = in.read(buf);
     
    System.out.println(new String(buf,0,len));
     
    OutputStream out = s.getOutputStream();//服务端反向
     
    out.write("收到,你也好".getBytes());
     
    s.close();
     
    ss.close();
     
  }
}

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马