1. 通过数据库控制。
2. 通过socket控制,占用一个端口。不知道有没有更好的方法。
2. 通过socket控制,占用一个端口。不知道有没有更好的方法。
解决方案 »
- java基础的一个小疑惑
- 都说csdn高手多,特来此寻求一算法的实现
- 这个程序的结果是什么?说说原因。
- 我知道这里不是delphi的版面,但是我从那回来乱了,我想知道delphi是什么?
- java中如何用数组来实现栈?
- 哪位大侠有java中文帮助文档???急需!!!
- 哪位高手有解密的Optimizeit Suite 5下载?
- 装Tomcat4.0时告诉我没找到jdk,但是明明有jdk,而且path也设好的,为什么?
- JAVA里2个float相乘会出现精度不对
- 请问该如何有效率的学习java基础呢,,,,
- 问一个关于socket的小问题!
- 求播放音乐的APPLET,由列表框开选择播放!得到即用100分!
System.setProperties("App","1");Properties props = System.getProperties();
props.getProperty("App")应用推出时设置"App"为0
给你一个例子,是利用ServerSocket和线程实现的
import java.net.*;
import java.io.*;
public class CZar extends Thread
{
private int dport=15674;
private String message="There has been a CZar!!!";
public CZar()
{
this.setDaemon(true);
this.start();
}
public CZar(int port,String message )
{
this.dport=port;
this.message=message;
this.setDaemon(true);
this.start();
}
public CZar(int port)
{
this.dport=port;
this.setDaemon(true);
this.start();
}
public CZar(String message)
{
this.message=message;
this.setDaemon(true);
this.start();
}
public void run()
{
try{
while(true){
ServerSocket ds=new ServerSocket(dport);
ds.accept();
}
}
catch(BindException e)
{
System.err.println(message);
System.exit(1);
}
catch(IOException e)
{
System.err.println(e);
e.printStackTrace();
}
}
}可以在你的程序中直接使用在开始的时候加上,如
CZar c=new CZar(6780/*port*(/,"there has been a instance running!!");就可以了。
可能也有其他的方法解决这个问题
import java.util.*;public class testTwo { public static void main(String[] args) {
CZar c=new CZar(6780,"there has been a instance running!");
testTwo instance = new testTwo();
instance.runOneEver();
} public void runOneEver(){
while (true) {
System.out.println("runOneEver : runOneEver is executing...");
}
}
}这么调用对不对?如果对的话,程序结果是这样的:我打开了两个dos窗口,暂且称之为A,B;
再A窗口执行:
java testTwo;
程序一直打印“runOneEver : runOneEver is executing...”;再在B窗口窗口执行:
java testTwo;
程序一直也打印 “runOneEver : runOneEver is executing...”
只不过只打印了几十行,然后打印“there has been a instance running!”,接着退出了该程序。也就是他还是执行了。不是太符合要求。接着是“signboy(横)”和 farawayzheng_necas(遥远) 大虾:
写文件这个方法可行,但不符合我的要求。再是“kare(小李飞刀的飞,小李飞刀的刀。) ”大虾:
这个不好用。其他我不会用,就没有试过。
不知各位大虾还有什么方法没有?
小弟先谢过了!!!!!!
import java.net.*;
import java.io.*;
public class CZar extends Thread
{
private int dport=15674;
private String message="There has been a CZar!!!";
public CZar()
{
this.start();
}
public CZar(int port,String message )
{
this.dport=port;
this.message=message;
this.start();
}
public CZar(int port)
{
this.dport=port;
this.start();
}
public CZar(String message)
{
this.message=message;
this.start();
}
ServerSocket ds=null;
public void start()
{
this.setDaemon(true);
try{
Socket s=new Socket("127.0.0.1",this.dport);
System.out.println(this.message);
System.exit(1);
}
catch(ConnectException e)
{
e.printStackTrace();
try{
ds=new ServerSocket(dport);
}catch(IOException ie){ie.printStackTrace();}
super.start();
}
catch(IOException ie){ //unknown host exception
System.err.println(ie);
ie.printStackTrace();
}
}
public void run()
{
while(true){
try{
ds.accept();
}
catch(IOException e)
{
System.err.println(e);
e.printStackTrace();
}
}
}
}
import java.net.*;
import java.io.*;
public class CZar extends Thread
{
private int dport=15674;
private String message="There has been a CZar!!!";
public CZar()
{
this.start();
}
public CZar(int port,String message )
{
this.dport=port;
this.message=message;
this.start();
}
public CZar(int port)
{
this.dport=port;
this.start();
}
public CZar(String message)
{
this.message=message;
this.start();
}
ServerSocket ds=null;
public void start()
{
this.setDaemon(true);
try{
Socket s=new Socket("127.0.0.1",this.dport);
System.out.println(this.message);
System.exit(1);
}
catch(ConnectException e)
{
try{
ds=new ServerSocket(dport);
}catch(IOException ie){ie.printStackTrace();}
super.start();
}
catch(IOException ie){ //unknown host exception
System.err.println(ie);
ie.printStackTrace();
}
}
public void run()
{
while(true){
try{
ds.accept();
}
catch(IOException e)
{
System.err.println(e);
e.printStackTrace();
}
}
}
}
但是Java也就只能这样了
唉
import java.net.*;
import java.io.*;
public class CZar extends Thread
{
private int dport=15674;
private String message="There has been a CZar!!!";
public CZar()
{
this.start();
}
public CZar(int port,String message )
{
this.dport=port;
this.message=message;
this.start();
}
public CZar(int port)
{
this.dport=port;
this.start();
}
public CZar(String message)
{
this.message=message;
this.start();
}
ServerSocket ds=null;
public void start()
{
this.setDaemon(true);
try{
Socket s=new Socket("127.0.0.1",this.dport);
System.out.println(this.message);
System.exit(1);
}
catch(ConnectException e)
{
try{
ds=new ServerSocket(dport);
}catch(IOException ie){ie.printStackTrace();}
super.start();
}
catch(IOException ie){ //unknown host exception
System.err.println(ie);
ie.printStackTrace();
}
}
public void run()
{
while(true){
try{
ds.accept();
}
catch(BindException e){
System.err.println(this.message);
System.exit();
}
catch(IOException e)
{
System.err.println(e);
e.printStackTrace();
}
}
}
}
new CZar(23456/*你期望的端口号*/,
message/*打印的信息*/);
就可以了