任何一个计算机系统,其端口都是独占的,这就是说:如果一个程序占有了某个端口,在它没有退出前其他程序是不能在占有该端口。很多这样的例子例如:不能用一个端口起两个tomcat。所有我们也可以利用这点开发一个独占的窗体,只有该窗体不销毁就不能启动第二个这样的窗体。
基本上不需要担心绑定端口会给系统造成什么负担或者影响,windows默认有65535个端口,只要你绑定一个比较大一些端口(20000以上),给系统造成冲突的可能性几乎没有,即便有了换一个即可。
对于运行未安装服务包的 Windows XP 或 Windows Server 2003 的计算机,下面给出了不同的端口范围:
众所周知的端口范围(由 IANA 保留):0 到 1023
临时端口范围(对于通配绑定):1025 到 MaxUserPort 注册表设置值
可用作特定端口(对于特定绑定):从 0 到 65535 的任何未封锁端口
保留端口的可用范围:1025 到 MaxUserPort 以及 49152 到 65535
封锁端口的可用范围:MaxUserPort + 1 到 49151(除非 MaxUserPort 的值设置为 49152 或更高,这种情况下没有可封锁端口范围)
一般用到的是1到65535,其中0不使用
一般的应用程序使用1024到4999用来通讯
5000以后的用来用户自定义端口
程序如下:
import java.io.IOException;
import java.net.ServerSocket;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class OnlyOneFrame extends JFrame{
private OnlyOneFrame(){
ServerSocket server;
try {
server = new ServerSocket(22333);
server.isBound();
} catch (IOException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(this, "您已经启动了一个窗体");
// 如果端口已经绑定,系统退出,释放内存。
System.exit(0);
}
setTitle("Your title");
setSize(805, 410);
setResizable(false);
setLocationRelativeTo(getOwner());
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new OnlyOneFrame();
}
}
分享到:
相关推荐
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
安装Jbuilder集成开发环境时,首先使用WINZIP将压缩的Jbuilder.zip文件解压缩到一个临时目录 中,然后执行临时目录中的setup.exe可执行文件,按照JBuilder安装向导完成JBuilder开发环境的 安装。在启动JBuilder开发...
* 执行过程为:启动类是否为继承关系树中的一个,如果是则先执行启动类的所有父类的静态语句块;然后执行启动类的静态语句块static{} -> * 执行启动类的main函数 -> 创建对象的继承树从高到底的类层次中的静态块...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
定义一个扩展远程接口(Remote)的接口,这个接口方法将供给客户端调用,该接口中的每个方法都必须声明抛出RemoteException。 定义一个实现该接口并扩展了UnicastRemoteObject的类(服务端运行的服务类),这个类将...
微信小程序启动方法,传入小程序的名字,启动微信,下拉,找到对应小程序,点击,即可启动。使用appium框架,java语言编写,仅应用于android的小程序自动化启动
实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...
第一步:启动一个elasticsearch服务,bin目录下的elasticsearch.bat 第二步:建索引,执行MusicReviewIndex中的单元测试方法index() 第三步:检索测试,执行MusicReviewSearch中的单元测试方法search() 本实例基于: ...
架构概览在卡佩罗博士的课堂上开发的系统由一个计算“空间”和许多“计算机”实例组成,该空间可以将子任务委托给这些实例。 客户端应用程序连接到空间并提交计算任务。 所有这些都是用 Java 开发的,并通过 Java ...
编写一个类LimitInstanceClass,...编写一个UseLimitInstanceClass类,在其main方法中实例化10个AccessLimitInstanceClassThread线程对象,并启动各个线程。 设置InstanceLimit.cfg的内容为3,写出你的程序的运行结果。
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java Socket实例(服务器多线程) 之前3积分下的代码,代码不错就是太贵,现本人分享出来
这样做虽然占用了一些系统资源,但会使程序更加稳定,因为新启动的程序是在不同的虚拟机进程中运行的,如果有一个进程发生异常,并不影响其它的子进程。在Java中我们可以使用两种方法来实现这种要求。最简单的方法...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
实例3 在Eclipse中创建第一个Java程序 4 常见问题 javac不是内部或者外部命令 6 常见问题 找不到类文件 6 常见问题 语法错误 7 第2章 Java基础语法 9 实例4 变量和常量 9 实例5 基本数据类型转换 10 实例6 ...
代码主要是启动、暂停AWS RDS实例或修改实例类型的demo。 注:执行main()之前先修改aws.accessKeyId和aws.secretAccessKey以及instance_id。
invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名...