文章分类 - Communication
摘要:要在Windows下,对计算机的串口或并口等进行编程,可以选择使用Java Communication API (javax.comm)包,现在最新的版本是3.0版本,但是3.0版本并没有支持windows系统的,只有Linux和Solaris,所有我们只能找原来的2.0的版本了。http://llk.media.mit.edu/projects/cricket/software /javaSerial.zip (两个文件夹里面有所需的3个文件),http://mdubuc.freeshell.org/Jolt/javacomm20-win32.zip 和(完整的2.0版本,还有example
阅读全文
摘要:网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。详细参考:http://baike.baidu.com/view/16102.htm
阅读全文
摘要:sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个IP地址和一个端口上(bind());3:将套接字设置为监听模式等待连接请求(listen());4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());5:用返回的套接字和客户端
阅读全文
摘要://TCP//服务器端程序#include< stdio.h >#include< stdlib.h >#include< windows.h >#include< winsock.h >#include< string.h > #pragma comment( lib, "ws2_32.lib" )#define PORT 2046#define BACKLOG 10#define TRUE 1void main( void ){int iServerSock;int iClientSock;char *buf
阅读全文
摘要:前些日子感觉得练习一下VC了,所以就有想,平时发短信那么累,手机键盘又不好用,而我又有数据线,为什么不可以用电脑直接发送短信呢?想法一出来,就开始找资料开始行动吧! 由于程序涉及的方面很多,因此只讲关键的主要的部分。 首先,得了解手机和电脑之间是通过什么通讯的,我的手机是有红外接口,电脑上接一个红外适配器,就可以与手机连接了,而Windows是把红外设备当作一个串口来看待的,所以关键就是在于如何用程序来控制COM端口来发送和接收数据。在网上找了很多资料然后就开始编写代码: 列举出系统中的所有的串口:这个需要操作注册表来实现,代码如下:void CSendMsgDlg::GetAllCom(){
阅读全文
摘要:Option Explicit '************************************************ '******************COM 端口设置****************** '************************************************ Public Function COMSet(CommObj As MSComm, ByVal mPort As String, ByVal mSet As String) As Boolean On Error GoTo Err If CommObj
阅读全文
摘要:七、线程间通讯一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标准类型的全局变量,我们建议使用volatile 修饰符,它告诉编译器无需对该变量作任何的优化,即无需将它放到一个寄存器中,并且该值可被外部改变。如果线程间所需传递的信息较复杂,我们可以定义一个结构,通过传递指向该结构的指
阅读全文
摘要:在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵活。其二是调用Windows的API函数,这种方法可以清楚地掌握串口通信的机制,并且自由灵活。本文我们只介绍API串口通信部分。串
阅读全文
摘要:配置环境:DDK,需要setupAPI相关头文件和库USB口的打开读写操作程序的通用性是很好的,不同的USB只需修改不同的GUID至于调试,你怎么调试串口程序就怎么调试USB程序,大小方面一次性发送和接受数据不大于64个字节.这个可能和USB设备有关使用一个GUIDguidHID_1查找并打开一个USB设备extern "C" int PASCAL SearchUSBDevice(){HANDLE hUsb;int nCount, i, j;//标记同一设备个数HDEVINFO hDevInfoSet;BOOL bResult; PSP_DEVICE_INTERFACE_D
阅读全文
摘要:VC并口读写int OpenLPT() { if ((hdlPrinter = CreateFile("LPT1", GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL )) == (HANDLE) -1 ) { return -1 ; } return 0; } int CloseLPT () { if (hdlPrinter != (HANDLE) -1) { CloseHandle(hdlPrinter); hdlPrinter = (HANDLE)-1;
阅读全文
摘要:在VB中利用API进行串口通信在VB中利用API进行串口通信 一般来说,在VB中编写串口通讯程序,首先考虑到是使用MSComm控件,可是该控件不能设置超时,而且对许多内部的参数进行了隐藏,从而不能满足有些具体的工作。 同时,由于串口通信是基于字节流的,为方便程序设计,还编写了三个简单的辅助函数,并写了一个详细的测试代码。Option Explicit Option Base 0 Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName
阅读全文
摘要:如果你想打开一个USB管道,你首先要知道这种USB设备的GUID和管理道名称,获取句柄以后就可以使用ReadFile/WriteFile进行读写了!以下是代码,请参考!!// filename是管道名称,如pipe01等int CUSBImpObject::open_file( char *filename){int successOpened = 0,i;int NumOpened;HANDLE h;NumOpened=OpenAllUsbDevices((LPGUID) &GUID_CLASS_I82930_BULK); if(NumOpened<=0) return 0;
阅读全文