如何读取其他程序向COM1口输出的数据?(300分)

  • 主题发起人 主题发起人 flysand
  • 开始时间 开始时间
F

flysand

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个计算机中(win98/win2k/winxp),别人的程序向com1输出数据,
我用欲用spcomm控件打开com1读取数据,系统提示已有其他程序使用该端口。

难道要用一条电缆把com1与com2连接,再从com2读数不成?[:(]
 
这是测试!
 
这个好像只有这样,因为COM1人家打开在发送数据,你已不有再打开了。
COM1 TO COM2 然后测听COM2的数据这不是很方便吗?
 
应该是吧 通过com2读取com1
嘿嘿 不知道有没有以只读方式打开com1 的方法
 
理论上的解决办法是使用驱动程序进行。就是编写串口的过滤驱动。俺不会。
你的办法也不错嘛,使用Com2连接Com1,很新颖的,哈哈。不过不知道是否真的可以。
 
小心短路,机器坏了不说,人烧得只剩裤叉。
 
应该有,上网查
 
to ghg_qh
能查到就不用在这发问了!
 
http://xpmao.8u8.com
 
在每一个COM口上都有一对接收与发送的端口,分别是2脚对地与3脚对地,你用SPCOMM初始化端口后,写好接收即RX的事件就好了,这样当对方发送时程序会自动接收的,出现端口被占用的信息可能是对方的连线接错了,注意:两机用COM口相连必须2脚与3脚对调才行。另外建议你用ASYN32来写,这个控件很好,可能一次发送超过几M
的数据,其它的好象都不行,另外没必要将两个COM连起来。 
 
这样的程序早就有了,叫portmon.exe,是国外的人做的,免费的,
但是没有源码,想自己做比较困难,需要做驱动程序的,我试了
一段时间没有成功,就没有搞了。
 
当然是了,你说的方法是比较简单的方法了
 
acee的讲解应该没错吧!:)
 
将COM1的2、3脚短接即可。
 
to acee:
不甚明白!
spcomm只有OnReceiveData事件,不知你所说的RX事件是指该事件吗?
出现端口被占用的信息不是的连线接错了,而是另一个程序向com1发送数 据,我就是要接收该数据。

to taowei:
连起来后就可以打开端口啦?
 
我也用过 PortMon , 它还可以监视网络端口.
很神奇. 原理不明白. 我也想知道
 
COM口有9根针,但我们只用了其中5根,分别是-TX,-RX,+TX,+RX ,
GND,所以在两机相连时你要让-TX与-RX连,+TX与+RX连, GND与GND连,SPCOMM中的ONRECEIVEDATA中好象有判断是收还是发的动作,因
为时间长了我不记得了,你仔细查一下就知道了,另外你可以先在本机上试一下,将COM口的2与3脚短接,然后试着发数据,应该马上就会有反应的,不过还是建议你用ASYN32来写,我以前就是用它来做的,很方便,你应该先读一遍控件的使用说明,再查一下
串口的一些引脚说明,其实很简单的,实在不行可给我打电话0512-57376040
 
to acee:
OnReceiveData是当接收到数据时发生的处理过程。但要接到数据,必须发出
comm1.startComm命令,但该台机的发送数据的程序已打开该端口,所以发出
comm1.startComm命令时,系统提示已有其他程序使用该端口,不能再打开。

注:[red]发送程序与接收程序都运行在同一台机上,所以接收程序不能打开端口。[/red]
 
后退
顶部