黑马程序员技术交流社区
标题:
有点不懂
[打印本页]
作者:
大手牵小手
时间:
2015-3-3 15:15
标题:
有点不懂
import java.io.*;
import java.net.*;
class
{
public static void main(String[] args)
{
Socket s = new Socket("192.168.1.254",10004);
OutputStream out = s.getOutputStream();
out.write("服务端,你好".getBytes());
InputStream in = s.getOutputStream();
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"....connected");
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
System.out.println(new String(buf,0,len));
OutputStream out = s.getOutputStream();
out.write("哥们收到,你也好"。getBytes());
}
}
复制代码
为什么可以有两个main呢?而且编译的时候还可以先编译.java文件在分别编译两个类啊?
作者:
alvis2015
时间:
2015-3-3 15:24
.java文件是存放程序源代码的文件,里面放多少个类都没有问题。编译器编译的时候是在编译这个.java文件,只要这文件里面出现的类,编译器都会编译。并且每一个类生成对应的字节码文件(.class文件)。一个Java文件中可以包含任意多的类,每一个类中都可以包含main函数。也就是说,你的这段代码里有两个独立的程序,每个包含main函数的类都代表一个独立的程序。
作者:
绝望
时间:
2015-3-3 15:43
因为是两个类,所以允许存在两个main方法,既然是两个类,肯定会出现两个字节码文件,按你这代码就是一个服务端和一个客户端的类文件了
作者:
大手牵小手
时间:
2015-3-4 15:45
alvis2015 发表于 2015-3-3 15:24
.java文件是存放程序源代码的文件,里面放多少个类都没有问题。编译器编译的时候是在编译这个.java文件,只 ...
原来是这样子啊,我记住了!谢谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2