2011-06-06 27 views
3

我正在创建一个可以将测试或数据发送到蓝牙设备的程序。为此,我想使用蓝牙软件提供的虚拟串行端口。使用C#发送/接收文本和数据到蓝牙(Com端口)使用C#

问:是否有任何方法可以将网络流发送到虚拟串行端口,如LAN中的套接字编程?

问:如何接收蓝牙数据?它是以网络流的形式吗?

问:哪种方法可以通过蓝牙发送和接收数据?

因为我不仅向设备发送文本,还有图像和其他类型的数据。

+1

好一系列问题,但它们更好地分成三个独立的问题。然后每个人都可以独立回答。 – 2011-06-06 10:34:07

回答

1

1)不能确定蓝牙虚拟端口,但我怀疑,你可以只用READFILE/WriteFile的,(或“EX”异步版本),以返回的句柄通过CreateFile(),就像一个'普通'的串行端口。如果是这样,你可以处理句柄(对不起!),就像套接字句柄在客户端套接字connect()或服务器监听器accept()中引发一样。因此,您应该能够使用专用线程,I/O完成例程或IO完成端口与虚拟端口进行通信。

我之前做过类似的事情,但是使用Delphi和'真正'的串行端口和客户端网络连接。我使用了一个IO完成例程,其中一个'IOhandler'类被传送到'hEvent'字段中的完成例程。串行端口和客户端套接字类是IOhandler后代,因此相同的IO完成例程代码适用于两者。它工作得很好,(最终:)。我不知道为什么它不能在C#中正常工作。

2)再说一次,关于蓝牙虚拟端口。鉴于许多蓝牙实现可以提供这些虚拟COM端口作为接口,那么传输必定是'八位字节流',就像TCP或'真正'的COM端口一样。

3)在Windows上?我怀疑IO完成端口。可能无关紧要,因为与Windows可以处理的相比,蓝牙带宽并不是那么好。

RGDS, 马丁

相关问题