最近在看Java的网络部分.看到了网络通信的部分,放两个练习类上来.
请注意,下面两个类,仅能用作演示或者练习,因为其中很多功能没有完善!
服务器类
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(); } } |