看你写的什么程序了,如果是web程序,服务器是linux系统的话。
首先要安装jdk之类的环境并且设置环境变量。一边在bashrc 等地方设置。
然后安装tomcat之类的web容器 用来发布程序。然后把程序拷贝到web容器的对应目录下就好了。
如果是纯java程序,那要些server端和client端,通过socket或者第三方库来实现访问。
如果只是单机的java的话,直接拷贝到服务器上,通过ssh远程登录到服务器上,执行就可以了。当然前提是环境变量。
是你自己的软件还是现成的软件?如果是自己的软件,主要是需要解决数据共享、互锁之类的问题就可以了,数据库可以用普通的sql server或者oracle。如果是现成的软件就比较麻烦,但可以试试,先确认一下数据库类型,然后看看数据能不能从机器上单独分离出去,在软件的设置中能不能将数据源指向其它机器。你说的我明白。如果真正使用alohal协议的时候,所有的机器都可以检测网络电平变化的是吧?但是使用Java编写模拟程序的话,我们并不能可能检测电平的变换,只能通过一定的手段来模拟这个过程。如果你将一个包裹群发,这样所有的机器都可以接受这个包,这样就可以做到所有机器模拟检测电平变化的这个要求。我认为这个是最有说服力的模拟方法了。线程需要使用Thread类型,重写里面的run函数,调用start()启动线程,具体可以搜索一把Thread,例子遍地都是。
UDP协议使用Socket类型,初始化的时候参数里面绑定(或者初始化好以后直接调用bind绑定端口,一般输出不用绑定,监听的时候需要绑定)。调用里面的getOutputStream得到输入流。调用getInputStream得到输入流。
OutputStream:输出流,用于向网络中输出数据。调用其中的write函数进行输出,函数的参数就是输出的byte数组。
InputStream: 输入流,用于接受网络里面的数据。调用其中的read可以得到输入的包。
String:你要输出的字符串,调用里面的getBytes可以得到String的byte数组。
其它的应该用不到什么了吧。
**********************************
1.发送字符串的话用byte[]就可以啊。用Socket类里面的getOutputStream可以获得一个发送数据的OutputStream类对象。这个类对象有一个函数write(byte[] b) 可以向网络写byte[]。一个字符串可以通过String类中的getBytes() 转化成byte[]。这样总该明白了吧
2.说一下我的思路:开一个端口A发送UDP包(广播给端口B),用于模拟发送,用一个线程(线程1)来跑。开端口B接受局域网内的包,用另外一个线程(线程2)来跑。在发送UDP包的时候,将变量mark置1,发送完置0。线程2如果接受到一个不是从本机发送的包,而且此时mark是1(说明本机和另外一个机器同时在发包),发生了冲突,表示线程1这次发送的包失败。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)