⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java后台服务程序设计.mht

📁 java后台服务相关资料都是自己在网上精心找到的
💻 MHT
📖 第 1 页 / 共 5 页
字号:
src=3D"http://www.ibm.com/i/v14/icons/u_bold.gif" width=3D16=20
                        border=3D0><BR></TD>
                      <TD vAlign=3Dtop align=3Dright><A class=3Dfbox=20
                        =
href=3D"http://www.ibm.com/developerworks/cn/java/l-app-server/index.html=
#main"><B>=E5=9B=9E=E9=A1=B5=E9=A6=96</B></A></TD></TR></TBODY></TABLE></=
TD></TR></TBODY></TABLE><BR><BR>
            <P><A name=3D3><SPAN =
class=3Datitle>=E6=9C=8D=E5=8A=A1=E6=8E=A7=E5=88=B6</SPAN></A></P>
            =
<P>=E6=9C=8D=E5=8A=A1=E6=8E=A7=E5=88=B6=E6=98=AF=E5=9C=A8=E6=9C=8D=E5=8A=A1=
=E5=99=A8=E8=BF=90=E8=A1=8C=E6=97=B6=E5=8A=A8=E6=80=81=E5=9C=B0=E6=93=8D=E4=
=BD=9C=E6=8E=A7=E5=88=B6=E6=9C=8D=E5=8A=A1=E5=99=A8=EF=BC=8C=E5=A6=82=E7=B3=
=BB=E7=BB=9F=E8=BF=90=E8=A1=8C=E6=97=B6=EF=BC=8C=E5=8A=A8=E6=80=81=E5=9C=B0=
=E8=A3=85=E8=BD=BD=EF=BC=88=E5=8D=B8=E8=BD=BD=EF=BC=89=E6=9C=8D=E5=8A=A1=EF=
=BC=8C=E6=98=BE=E7=A4=BA=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E7=8A=B6=E6=80=
=81=E4=BF=A1=E6=81=AF=E7=AD=89=E7=AD=89=E3=80=82=E4=B8=BA=E4=BA=86=E7=AE=80=
=E5=8C=96=E5=9F=BA=E6=9C=AC=E5=90=8E=E5=8F=B0=E6=9C=8D=E5=8A=A1=E7=B3=BB=E7=
=BB=9F=E7=9A=84=E5=A4=8D=E6=9D=82=E7=A8=8B=E5=BA=A6=EF=BC=8C=E6=88=91=E4=BB=
=AC=E9=87=87=E7=94=A8=E5=88=9B=E5=BB=BA=E4=B8=80=E4=B8=AAControlService=E6=
=9C=8D=E5=8A=A1=E5=AE=9E=E4=BE=8B=E6=9D=A5=E5=9C=A8=E8=BF=90=E8=A1=8C=E6=97=
=B6=E7=AE=A1=E7=90=86=E6=9C=8D=E5=8A=A1=E5=99=A8=E3=80=82ControlService=E5=
=AE=9E=E7=8E=B0=E4=BA=86=E5=9F=BA=E4=BA=8E=E5=91=BD=E4=BB=A4=E7=9A=84=E5=8D=
=8F=E8=AE=AE=EF=BC=8C=E5=8F=AF=E7=94=A8=E5=AF=86=E7=A0=81=E4=BF=9D=E6=8A=A4=
=E6=93=8D=E7=BA=B5=E6=9C=8D=E5=8A=A1=E5=99=A8=EF=BC=8C=E4=BB=A3=E7=A0=81=E5=
=A6=82=E6=B8=85=E5=8D=95=20
            5=E6=89=80=E7=A4=BA=EF=BC=9A </P>
            <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
border=3D0>
              <TBODY>
              <TR>
                <TD class=3Dcode-outline><PRE class=3Ddisplaycode> =
=E3=80=90=E6=B8=85=E5=8D=95 =
5=EF=BC=9A=E6=9C=8D=E5=8A=A1=E6=8E=A7=E5=88=B6=E7=B1=BB=E6=96=87=E4=BB=B6=
ControlService.java=E3=80=91
import java.io.*;
import java.util.*;
import java.net.*;
import dvb.kuanshi.kssms.util.*;
import dvb.kuanshi.kssms.server.Server;
public class ControlService implements Service {
  Server server;
  String password;
  public ControlService(Server server, String password) {
      this.server =3D server;
      this.password =3D password;
  }
  public void serve(InputStream in, OutputStream out) throws IOException =
{
      boolean authorized =3D false;
      BufferedReader from_client =3D new BufferedReader(new =
InputStreamReader(in));
      PrintWriter to_console =3D new PrintWriter(System.out, true);
      =
to_console.println("=E5=90=8E=E5=8F=B0=E7=AE=A1=E7=90=86=E6=9C=8D=E5=8A=A1=
=E5=93=8D=E5=BA=94=E8=AF=B7=E6=B1=82=EF=BC=81\n");
      PrintWriter to_client =3D new PrintWriter(out);
      synchronized (this) {
          if(server.connected) {
              =
to_client.println("=E5=B7=B2=E7=BB=8F=E6=9C=89=E7=94=A8=E6=88=B7=E8=BF=9E=
=E6=8E=A5=EF=BC=8C=E6=9C=AC=E6=9C=8D=E5=8A=A1=E4=BB=85=E5=85=81=E8=AE=B8=E4=
=B8=80=E4=B8=AA=E8=BF=9E=E6=8E=A5=EF=BC=81\n");
              to_client.close();
              return;
          } else server.setControlFlag();
      }
       =20
      to_client.println("Remote Console&gt;");
      to_client.flush();
     =20
      String line;
      while ((line=3Dfrom_client.readLine())!=3Dnull) {
            int len =3D line.indexOf("Remote Console&gt;");
            line =3D line.substring(len+1,line.length());
            String printStr;
            try {
            StringTokenizer st =3D new StringTokenizer(line);
            int count =3D st.countTokens();
            if (!st.hasMoreElements()) continue;
            String first =3D st.nextToken().toLowerCase();
            if (first.equals("password")) {
                String pwd =3D st.nextToken();
                if (pwd.equals(this.password)) {
                    to_client.println("OK");
                    authorized =3D true;
                } else =
to_client.println("=E5=AF=86=E7=A0=81=E6=97=A0=E6=95=88,=E8=AF=B7=E9=87=8D=
=E8=AF=95=EF=BC=81\n");
            } else if (first.equals("add")) {
                if(!authorized) =
to_client.println("=E8=AF=B7=E7=99=BB=E9=99=86=EF=BC=81\n");
                else {
                    count--;
                    String servicename;
                    int Port;
                    boolean flag =3D true;
                    if (count&gt;0) {
                    	servicename =3D st.nextToken();
                    	Port =3D Integer.parseInt(st.nextToken());
                    	server.addService(loadClass(servicename1), Port);
                    	to_client.println("=E6=9C=8D=E5=8A=A1" + =
servicename + "=E5=B7=B2=E7=BB=8F=E5=8A=A0=E8=BD=BD\n");
                    	flag =3D false;            		=09
                    }
                    if (flag) =
to_client.println("=E7=B3=BB=E7=BB=9F=E4=B8=8D=E8=83=BD=E5=90=AF=E5=8A=A8=
=E9=9D=9E=E6=B3=95=E6=9C=8D=E5=8A=A1=EF=BC=9A" + servicename);
                    else =
{to_client.println("=E8=AF=B7=E8=BE=93=E5=85=A5=E6=9C=8D=E5=8A=A1=E5=90=8D=
=EF=BC=81\n");}
                 }
            } else if (first.equals("remove")) {
                if(!authorized) =
to_client.println("=E8=AF=B7=E7=99=BB=E9=99=86=EF=BC=81\n");
                else {
                    count--;
                    if (count&gt;0) {
                    	int port =3D Integer.parseInt(st.nextToken());
                    	boolean bl =3D server.removeService(port);
                    	if (bl) to_client.println("=E7=AB=AF=E5=8F=A3: " + =
port =
+"=E4=B8=8A=E7=9A=84=E6=9C=8D=E5=8A=A1=E5=B7=B2=E7=BB=8F=E5=8D=B8=E8=BD=BD=
\n");
                    	else to_client.println("=E7=AB=AF=E5=8F=A3: "+ port =
+"=E4=B8=8A=E6=97=A0=E4=BB=BB=E4=BD=95=E6=9C=8D=E5=8A=A1=E8=BF=90=E8=A1=8C=
=EF=BC=8C=E5=8D=B8=E8=BD=BD=E6=93=8D=E4=BD=9C=E5=A4=B1=E8=B4=A5=EF=BC=81\=
n");
                    } else =
to_client.println("=E8=AF=B7=E8=BE=93=E5=85=A5=E7=AB=AF=E5=8F=A3=E5=90=8D=
=EF=BC=81\n");
                }
            } else if(first.equals("status")) {
                if(!authorized) =
to_client.println("=E8=AF=B7=E7=99=BB=E9=99=86=EF=BC=81\n");
                else server.displayStatus(to_client);
            } else if(first.equals("help")) {
                if(!authorized) =
to_client.println("=E8=AF=B7=E7=99=BB=E9=99=86=EF=BC=81\n");
                else printHelp(to_client);
            } else if(first.equals("quit")) break;
            else =
to_client.println("=E5=91=BD=E4=BB=A4=E4=B8=8D=E8=83=BD=E8=AF=86=E5=88=AB=
=EF=BC=81\n");
            } catch(Exception e) =
{to_client.println("=E7=B3=BB=E7=BB=9F=E5=90=8E=E5=8F=B0=E5=87=BA=E9=94=99=
" + e.getMessage() +"\n");
            printHelp(to_client);
            }
            to_client.println("Remote Console&gt;");       =20
            to_client.flush();
        }
        to_client.flush();
        authorized =3D false;
        server.removeControlFlag();
        to_client.close();
        from_client.close();
  }
  private void printHelp(PrintWriter out) {
        out.println("COMMANDS:" +
                                  "\tpassword &lt;password&gt;\n" +
                                  "\t\tadd &lt;servicename&gt; =
&lt;port&gt;\n" +
                                  "\t\tremove &lt;port&gt;\n" +
                                  "\t\tstatus\n" +
                                  "\t\thelp\n" +
                                  "\t\tquit\n");
  }
  protected Service loadClass(String servicename) {
      Service s =3D null;
      try {
          Class serviceClass =3D Class.forName(servicename);
          s =3D (Service) serviceClass.newInstance();
      } catch (Exception e) {
      }
      return s;
  }
}</PRE></TD></TR></TBODY></TABLE><BR>
            =
<P>=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=AE=9E=E7=8E=B0=E5=92=8C=E8=BF=90=E8=A1=8C=
 =
<BR>=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=AE=9E=E7=8E=B0=E4=B8=BB=E8=A6=81=E5=AE=
=8C=E6=88=90=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E5=88=9D=E5=A7=8B=E5=8C=96=
=EF=BC=8C=E5=90=AF=E5=8A=A8=E6=9C=8D=E5=8A=A1=E6=8E=A7=E5=88=B6=E5=AE=9E=E4=
=BE=8B=E7=AD=89=E5=B7=A5=E4=BD=9C=EF=BC=8C=E4=BB=A3=E7=A0=81=E5=A6=82=E6=B8=
=85=E5=8D=95 6=E6=89=80=E7=A4=BA=EF=BC=9A </P>
            <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
border=3D0>
              <TBODY>
              <TR>
                <TD class=3Dcode-outline><PRE class=3Ddisplaycode> =
=E3=80=90=E6=B8=85=E5=8D=95 =
6=EF=BC=9ArunServer.java=E7=9A=84=E4=B8=80=E4=B8=AA=E7=AE=80=E5=8D=95=E5=AE=
=9E=E7=8E=B0=E3=80=91
import java.util.*;
public class runServer {
  public runServer() {
  }
  public static void main(String[] args) {
      try {
          int argLen =3D args.length;
          =
System.out.println("=E6=AD=A3=E5=9C=A8=E5=88=9D=E5=A7=8B=E5=8C=96=E7=B3=BB=
=E7=BB=9F=E8=AF=B7=E7=AD=89=E5=BE=85......");
          System.out.println("");
          int maxConn =3D 30;
         =20
          Server server =3D new Server(maxConn);
         =20
          =
System.out.println("#####################################################=
###########");
<!-- code sample is too wide -->	  System.out.println("#                 =
                                             #");
<!-- code sample is too wide -->	  System.out.println("#                 =
    =
=E5=90=8E=E5=8F=B0=E6=9C=8D=E5=8A=A1=E7=AE=A1=E7=90=86=E7=B3=BB=E7=BB=9F =
                     #");
	  System.out.println("#                                                 =
             #");
<!-- code sample is too wide -->	  =
System.out.println("#####################################################=
###########");
<!-- code sample is too wide -->	  System.out.println();
          if (argLen&gt;2) {
          for (int i =3D 0;i&lt;argLen;i++) {
              if (args[i].equals("-s")) {
                  i++;
                  String password =3D args[i];
                  i++;
                  int port =3D Integer.parseInt(args[i]);
                  server.addService(new ControlService(server,password), =
port, 2);
              } else {
                  String servicename =3D args[i];
                  i++;
                  int port =3D Integer.parseInt(args[i]);
                  server.addService(loadClass(servicename), port);
              }
          }
          } else throw new =
IllegalArgumentException("=E5=8F=82=E6=95=B0=E6=95=B0=E7=9B=AE=E4=B8=8D=E6=
=AD=A3=E7=A1=AE!");
          =
System.out.println("=E7=B3=BB=E7=BB=9F=E5=90=AF=E5=8A=A8=EF=BC=8C=E8=BF=9B=
=E5=85=A5=E7=9B=91=E5=90=AC=E6=9C=8D=E5=8A=A1=E6=A8=A1=E5=BC=8F......");
      } catch (Exception e) {
          throw new IllegalArgumentException(e.getMessage());
      }
   }
  protected static Service loadClass(String servicename) {
      Service s =3D null;
      try {
          Class serviceClass =3D Class.forName(servicename);
          s =3D (Service) serviceClass.newInstance();
      } catch (Exception e) {
      }
      return s;
  }
}</PRE></TD></TR></TBODY></TABLE><BR>
            =
<P>=E4=B8=8B=E9=9D=A2=E6=88=91=E4=BB=AC=E5=B0=B1=E5=8F=AF=E4=BB=A5=E5=90=AF=
=E5=8A=A8=E7=A4=BA=E4=BE=8B=E7=A8=8B=E5=BA=8F=E6=9D=A5=E6=B5=8B=E8=AF=95=E4=
=B8=80=E4=B8=8B=E4=BA=86=E3=80=82</P>
            <P>=E5=A6=82=E6=B8=85=E5=8D=95 =
7=E6=89=80=E7=A4=BA=EF=BC=8C=E4=BB=A5=E5=AF=86=E7=A0=81=E4=BF=9D=E6=8A=A4=
=E6=96=B9=E5=BC=8F=EF=BC=88=E5=AF=86=E7=A0=81=E4=B8=BAtest=EF=BC=89=E5=90=
=AF=E5=8A=A8=E5=90=8E=E5=8F=B0=E6=9C=8D=E5=8A=A1=EF=BC=8C=E5=9C=A86809=E5=
=90=AF=E5=8A=A8=E6=9C=8D=E5=8A=A1=E6=8E=A7=E5=88=B6=E5=AE=9E=E4=BE=8B=EF=BC=
=8C=E5=9C=A86810=E7=AB=AF=E5=8F=A3=E5=90=AF=E5=8A=A8=E3=80=82</P>
            <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
border=3D0>
              <TBODY>
              <TR>
                <TD class=3Dcode-outline><PRE class=3Ddisplaycode> =
=E3=80=90=E6=B8=85=E5=8D=95 =
7=EF=BC=9A=E5=90=AF=E5=8A=A8=E5=90=8E=E5=8F=B0=E6=9C=8D=E5=8A=A1=E7=A8=8B=
=E5=BA=8F=E3=80=91
 % java runServer -s test 6809 Timer 6810
</PRE></TD></TR></TBODY></TABLE><BR>
            =
<P>=E5=9C=A8=E5=8F=A6=E5=A4=96=E4=B8=80=E4=B8=AA=E7=AA=97=E5=8F=A3=EF=BC=8C=
=E6

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -