当前位置:  技术问答>java相关

请问高手们如何用JAVA对COM端口分别进行读和写操作?50分相送谢了!

    来源: 互联网  发布时间:2015-02-05

    本文导语:  请给我详细代码,谢谢。 注:我参考并修改了SUN的Java(tm) Communications API Win32 文档和实例程序但是好象不行呀,代码如下: import java.io.*; import java.util.*; import javax.comm.*; public class SimpleWrite {     static Enumerat...

请给我详细代码,谢谢。

注:我参考并修改了SUN的Java(tm) Communications API Win32 文档和实例程序但是好象不行呀,代码如下:

import java.io.*;
import java.util.*;
import javax.comm.*;

public class SimpleWrite {
    static Enumeration portList;
    static CommPortIdentifier portId;
    static String messageString = "Hello, world!n";
    static SerialPort serialPort;
    static OutputStream outputStream;

    public static void main(String[] args) {    
//Obtains an enumeration object that contains a CommPortIdentifier object for each port in the system. 
        portList = CommPortIdentifier.getPortIdentifiers();              
        while (portList.hasMoreElements()) {   //Tests if this enumeration contains more elements. 
            System.out.println("Port Detected!");    
    //Returns the next element of this enumeration if this enumeration object has at least one more element to provide.            
            portId = (CommPortIdentifier) portList.nextElement();
            //Returns the port type. Returns:portType - PORT_SERIAL or PORT_PARALLEL 
            //CommPortIdentifier.PORT_SERIAL:RS-232 serial port 
            if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
             //Returns the name of the port. The port name should be identifiable by the user. Ideally, it should be the label on the hardware. For example, "COM1" and "COM2" on PCs; "Serial A" and "Serial B" on Sun Ultra workstations. 
                if (portId.getName().equals("COM1")) {
                //if (portId.getName().equals("/dev/term/a")) {
                    try { 
                        serialPort = (SerialPort)
                            portId.open("SimpleWriteApp", 2000);
                    } catch (PortInUseException e) {}
                    try {
                        outputStream = serialPort.getOutputStream();
                    } catch (IOException e) {}
                    try {
                        serialPort.setSerialPortParams(9600,
                            SerialPort.DATABITS_8,
                            SerialPort.STOPBITS_1,
                            SerialPort.PARITY_NONE);
                    } catch (UnsupportedCommOperationException e) {}
                    try {
                        outputStream.write(messageString.getBytes());
                        //System.out.println("abc");
                    } catch (IOException e) {}
                }
            }
        }
    }
}

如果程序能检测到端口的话,就会进入WHILE循环并显示"Port Detected!",但是执行结束后没能显示此字符串,说明WHILE循环并未被真正执行。

请高手们相助!

|
Hi qianying :)
我这儿一切正常啊, 我用的是2.0 for windows, 运行环境是IBM JDK1.3 + Windows 2000 Professional ...

|
你看看你的系统啊, 有没有什么冲突? 再看看BIOS, 有没有禁用什么的 ... 反正应该不是程序的问题了 ...

算我多嘴, 不知道你用这个打算做什么呢? 你对串口通信很熟吧? 我最近也对JNI很感兴趣, 特别想做点东西:p 记得以前有人做出在linux上通过自制的串口线来检测主机是否停电, 并配合UPS完成自动关机的程序, 是用C写的 ... 当然我不是说要用java再写一边, 那简直就是体力劳动乐, 我只是觉得通过串口还可以做更多的东西, 你觉得呢?

|
看看有没有将javax.comm.properties文件放在lib目录下,如果没有将检测不到任何端口。

|
看看你的程序退出时是否有错。

    
 
 

您可能感兴趣的文章:

  • 请问各位大虾,ping命令的端口是多少?把某个端口封掉,用什么命令?
  • 请问:查看端口监听情况的命令是什么啊?( 比如我想看服务器是否在监听某一端口)
  • 请问:我发现端口一旦被绑定后就无法释放出来,除非服务器端退出,有没有主动释放端口的办法啊?
  • 请问如何将tomcat却省的8080端口改成80端口呀?
  • 一个进程首先监听一个端口,等到有连接了就新开一个进程,让新进程来处理后面的通讯。请问母进程中已经打开了端口,子进程怎么来使用同一
  • 请问这样在技术上是否可行?(我自己写一个程序来监听我的系统上的端口,有些端口已经被别的应用使用,我能够使用什么方法再去监听这个端
  • 请问:我正在编linux下的openssl程序,它是要用443号端口的,调试时却不通,应是linux系统占用了该端口,我怎可停了它以作我用,或停了系统的op
  • 请问:Ipchains 怎么进行端口映射?
  • 请问如何在linux下关闭一个正在监听的端口?
  • 请问,在linux下如何探测socket端口通不通啊?
  • 请问Linux下安装了apache服务器后会打开哪些端口?
  • 请问如何向系统注册一个网络端口号,并指定此端口的的联接,自动导向我的应用程序
  • 请问nmap 能对一个ip 的仅仅一个端口探测吗???
  • 请问: 想监听12000端口的状态,用什么命令啊
  • 请问:FTP工具或者命令怎么设置,让数据路和控制路都使用默认的21端口
  • 请问有什么工具可以监控本机某个端口流出的数据包,急急呀!
  • 请问配置了ftp服务器、邮件服务器后系统默认开放哪些端口?
  • 送分啦!!!请问在Linux下如何封端口?!
  • 请问如何查看端口被占用情况?
  • 请问怎样为应用程序添加一个端口?
  • 请问LINUX操作系统是怎样对外围设备进行操作的
  • 请问命令行操作下怎么改Linux操作系统的日期和时间?
  • 请问16位操作系统和32位操作系统的区别?
  • 请问各位,我想学习linux,是装linux操作系统还是在虚拟机下装操作系统呢?那种好点啊
  • 请问我本机操作系统是2K,如何远程操作RedHat9?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问:如何让对多个现有的文件的写操作成为一个原子操作,并可以实现安全的回滚功能?
  • 已安装了Windows操作系统,还想安装Linux。却还想在开机选择操作系统时由Windows引导,请问如何操作。在线等待
  • 请问netware 是不是操作系统, 为什么csdn 的操作系统栏里面没有设置它的。
  • 请问操作系统中任务调度主要有哪些策略,LINUX用哪种啊??实时操作系统又有哪些任务调度哪些策略啊??
  • 请问unix 操作系统是窗口界面还是文字界面的?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言! iis7站长之家
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问诸位高手:如何在服务器上得到正在连接的客户端IP??
  • java高手,请问BDK在那儿下载?
  • 请问高手们,怎样把int 转换成String 型
  • 请问高手,内核升级到2.6以后,rpm的问题解决了吗?
  • 请问哪位高手知道在Linux下怎么开发C#?
  • 请问哪位高手可以帮我远程看看Fedora的安装
  • 各位高手,请问这个是什么情况,CPU100%
  • 请问高手们,有没有一款工具可以测试内核内存泄露的?
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • 请问各位高手,如何在c shell中从标准输入读参数然后赋给一个变量啊
  • 请问高手有关makefie!!!!
  • 急求高手!请问怎样用c产生6位随机密码,急!
  • 请问各位高手,如何用linux系统无先上网呢
  • 请问高手如何在linux环境中获取bios时间,在线等待,急
  • 请问高手:web中如何把多选的select表单中的数据提交到servlet中?(在线等)
  • 请问高手 javabean 与 weblogic 的问题!!!!!!
  • 请问高手:我想用applet调用一个本地的exe。怎么办?
  • 请问高手___redhat7.3安装问题
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!
  • 请问linux下GUI开发的问题!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3