JAVA实现服务器和多用户跨平台的通讯

  随着网络技术的发展,我们的平台越做越大,里面的服务器支架数量也很多。在为我们提供了消防设施的同时,我们发现,由于服务器和平台的操作平台不同,它们之间的通讯是一个麻烦的问题,因为很多现成的通讯软件或者源程序都是针对同一平台的。为了解决这个问题,我们采用JAVA编程,成功的实现了LINUX,WINDOWS NT,WIN98跨平台的通讯。
  ----server程序源码如下:
  //server.java import java.io.*;导入sun.net.*;class
  server extends NetworkServer//定义服务器类{DataInputStream net_input;//定义数据输出
  PrintStream net_output;//定义数据输入public static void main(String args[]){new
  server();}public server()//运行服务器功能,并将端口设为1111{try
  {startServer(1111);}catch(Exception e){System.out.println(“无法启动
  服务器。”);返回;}System.out.println(“等待客户端...”);}public
  void serviceRequest()//定义服务应答功能{net_input=new
  DataInputStream(clientInput);net_output=系统.out;字符串用户=read_net_input();
  System.out.println(user+“已连接!”);while(true){字符串字符串;
  if((string=read_net_input())==null)中断;//如果格式输入NULL,中断服务
  write_net_output(user+":"+string);}System.out.println(user+"已
  断开连接!");}String read_net_input(){try{return net_input.readLine();}
  catch(IOException e){return null;}}void write_net_output(String string){
  net_output.println(string);}net_output.flush();}}前端程序源代码:
  //client.java import java.io.*;导入sun.net.*;class client extends NetworkClient//定义负载类
  {DataInputStream net_input;打印流net_output;public static void main(String
  args[])//获取服务器IP地址和后台名{if(args.length<2){System.out.println("To run,type:\n");System.out.println("java client<主机><用户名>");}
  System.out.println("连接...");尝试{new client(args[0],args[1]);}catch
  (Exception e){System.out.println("无法创建NetworkClient。");return;}
  }public client(String host,String username)throws IOException//与服务器链接功能
  {super(host,1111);if(serverIsOpen()){System.out.println("已连接到
  服务器。");net_input=new DataInputStream(System.in);net_output=serverOutput;
  net_output.println(用户名);chat();}else System.out.println("Error:Could not
  connect to server.");}void chat()//定义信息传递函数,当输入EXIT时,中断链接
  {String string;System.out.println("键入EXIT退出");while(true){
  string=read_net_input();if(string.equalsIgnoreCase("EXIT"))break;
  write_net_output(string);}System.out.println(“正在断开连接...”);
  close_server();System.out.println(“完成!”);}String read_net_input(){try
  {return net_input.
  write_net_output(String string){net_output.println(string);net_output.flush();}void
  close_server(){try{closeServer();}catch(Exception e){System.out.println("无法
  关闭服务器。");}}}
  ----
  把两个源程序输入后,在任一操作平台上运行javac server.java和javac client.java,分别把它们编译成class文件。由于java的class文件的跨平台性,只需在服务器上运行相应的java解析程序执行server,在客户端机上运行相应的java解析程序执行客户端,可以实现仓库和服务器之间的通讯了,而且服务器允许多用户接入。以文学学校的邻居为例,源程序在WIN98平台上用JDK 1.1.5编译成功,把server.class→到一台LINUX服务器上,执行java服务器(该服务器已经安装了JAVA的RPM包),在其他WINNT平台→加入client.class,运行jview client 192.168.100.1 NT(192.168).100.1是LINUX服务器的IP地址),可以实现跨平台通讯了。