Java服务器简单代码分析

1、建立服务器端工程和JAVA类,类程序的原代码为:

import java.io.*;

import java.net.*;

public class SocketServer {

// 为这个Socket选择一个断口8080:

public static final int PORT = 8080;


  //public static final 用于声明一个变量,并且这个变量在程序中不能够改变。


public static void main(String[] args) throws IOException {   


//  public static void main(String[] args)  :这是java程序的入口地址,java虚拟机运行程序的时候首先找的就是main方法.跟C语言里面的main()函数的作用是一样的.只有有main()方法的java程序才能够被java虚拟机欲行,可理解为规定的格式. 

对于里面的参数及修饰符: 

1.public:表示的这个程序的访问权限,表示的是任何的场合可以被引用,这样java虚拟机就可以找到main()方法,从而来运行javac程序. 

2.static:表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候main()方法也随着加载到内存中去

3.void:main()方法是不需要返回值的

4.main:约定俗成,规定的

5.String[] args:从控制台接收参数




throws  IOException告诉编译器  我这个方法中间可能有些地方 要抛出异常



ServerSocket s = new ServerSocket(PORT);


ServerSocket s = new ServerSocket(PORT);相当于服务器启动了,并且监听了PORT(8080)


System.out.println("开始: " + s);


println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。


try {

// 生成一个Socket等待连接请求

Socket socket = s.accept();


Socket socket = s.accept();等待客户端 连接PORT(8080)


try {

System.out.println(

"接受连接请求: " + socket);

BufferedReader in =

new BufferedReader(

new InputStreamReader(

        socket.getInputStream()));



BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInputStream()))

是从client.getInputStream()获取一个输入流in,,,BufferenReader是字符流,inputStream是字节流,要用字节流构造字符流,中间要用一个转换流InputStreamReader


// 定义一个PrintWriter对象写输出流

PrintWriter out =

new PrintWriter(

new BufferedWriter(

new OutputStreamWriter(

socket.getOutputStream())), true);

while (true) {

String str = in.readLine();

if (str.equals("END")) {

break;

}

System.out.println("自客户端: " + str);

out.println(str);

}

// 关闭socket

}

finally {

System.out.println("关闭...");

socket.close();

}

}

finally {

s.close();

}

}

}

你可能感兴趣的:(Java服务器简单代码分析)