简单的网络通信程序

最近在看Java的网络部分.看到了网络通信的部分,放两个练习类上来.

请注意,下面两个类,仅能用作演示或者练习,因为其中很多功能没有完善!

java
image-1786

服务器类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.net.ServerSocket;
import java.net.Socket;
import java.io.PrintStream;


/**
 * 网络简单通信,服务器端.
 * 运行此程序后不会有任何提示,如果在Eclipse上运行此程序,单击运行之后
 * 可以直接去运行客户端类.[如果报错:地址已在使用,表示该类已经运行]
 *
 * @author ruidong
 * @version 2013.5.2
 */

public class Server{

    public static void main (String []args)throws Exception{
        ServerSocket ss = new ServerSocket(10000); //监听的端口号
        /*
         * 如果需要远程访问,
         * 请务必保证此端口是可以被访问的(特别是在Linux系统下面).
         */
        while(true){ //不间断的接收来自客户端的消息.
            Socket s = ss.accpet();
            PrintStream ps = new PrintStream(s.getOutputStream());
            //进行普通IO操作.
            ps.println("您收到了来自服务器新消息!");
        }
                        ps.close();
            s.close();
    }
}

客户端类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.net.Socket;
import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
 * 网络简单通信,客户端.
 * 运行此程序后将会看到来自服务器的消息提示.
 *
 * @author ruidong
 * @version 2013.5.2
 */

public class Client{

    public static void main (String []args)throws Exception{
        //前一个参数是需要访问的地址,可以是本地的,
        //也可以是远程的.后面那个是端口号.
        Socket s = new Socket("127.0.0.1",10000);
        BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
        //输出来自服务器的消息.
        System.out.println("来自服务器的信息:"+br.readLine());
        br.close();
        s.close();
    }


}