在做项目的过程中,本来是想使用JAVA的comm.jar工具实现串口通讯,不知道怎么回事,总是取不到电脑的串口。所以,改为现在的这种模式:java通过socket给vb程序发送指令,然后VB程序通过comm部件给串口发送指令。效果不错。
程序服务端使用VB实现:
代码:
Private lngWSKIndex As Long
Private Sub Form_Load()
lvRecord.ColumnHeaders.Clear
lvRecord.ColumnHeaders.Add , , "ID", lvRecord.Width / 15
lvRecord.ColumnHeaders.Add , , "客户端序列号", lvRecord.Width / 4
lvRecord.ColumnHeaders.Add , , "内容", lvRecord.Width
lvRecord.ListItems.Clear
wskServer(0).LocalPort = 9999
wskServer(0).Listen
lngWSKIndex = 0
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
Else
End If
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
End Sub
Private Sub wskServer_Close(Index As Integer)
If Index = 0 Then Exit Sub
'关闭客户端对应的应答Socket
Close #Index
'卸载自动加载控件,节省资源
Unload wskServer(Index)
End Sub
'服务器端接收到连接请求
Private Sub wskServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
lngWSKIndex = lngWSKIndex + 1 '连接号自动加1
Load wskServer(lngWSKIndex) '加载客户端连接请求对应的应答Socket
wskServer(lngWSKIndex).Accept requestID '允许连接
End Sub
Private Sub wskServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strGetData As String
Dim nCount As Integer
Dim i As Integer
wskServer(Index).GetData strGetData, vbString
nCount = lvRecord.ListItems.Count
nCount = nCount + 1
If strGetData = "1=1" Then
lvRecord.ListItems.Add , , nCount
lvRecord.ListItems(nCount).ListSubItems.Add , , "接收到第" & Index & "个警报"
lvRecord.ListItems(nCount).ListSubItems.Add , , "未结账通过"
End If '只对接收到的客户端发送命令
' wskServer(Index).SendData "信息:" & strGetData & "已收到!"
Dim Temp(0) As Byte
Dim strBuff As String
strBuff = strGetData
MSComm1.Output = strBuff
End Sub
需要添加Winsock部件和MSComm部件
程序的客户端JAVA代码
package com;
import java.io.*;
import java.net.*;
public class Socket_t {
public static void main(String args[]){
try {
Socket_t.SendData("1=1");
Thread.sleep(10000L);
Socket_t.SendData("1=0");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void SendData(String data){
try{
Socket socket=new Socket("127.0.0.1",9999);
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
os.write(data);
os.flush();
os.close(); //关闭Socket输出流
socket.close(); //关闭Socket
}catch(Exception e){
e.printStackTrace();
}
}
}
分享到:
相关推荐
标题中的“VB与Java SOCKE通讯”指的是使用Visual Basic(VB)作为客户端,与使用Java编写的服务器进行网络通信的一种技术。在这个场景中,VB和Java通过Socket接口进行通信,Socket是TCP/IP协议的一部分,允许应用...
标题中的“VB与JAVA的SOCKE通讯”指的是在Visual Basic (VB) 和Java之间建立Socket通信的过程。Socket编程是网络编程的基础,它允许两个或多个应用通过TCP/IP协议进行数据交换。VB和Java作为两种不同的编程语言,都...
这个“windows——socket通讯.zip”文件显然包含了关于如何在Windows平台上使用Socket进行UDP和TCP通信的示例代码。让我们深入探讨一下Windows Socket编程的基础知识,以及UDP和TCP这两种传输协议的特点。 首先,...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
本资料包"欧姆龙以太网通讯TCP_UDP例子及欧姆龙PLC程序例子说明.zip"提供了关于如何实现欧姆龙PLC与外部设备通过TCP/IP和UDP/IP进行通信的实例和详细说明,对于理解欧姆龙PLC的网络通信功能极具价值。 首先,TCP...
流式Socket是一种通过标准的UNIX文件描述符和其他程序通讯的一种方法,提供可靠的、面向连接的通信流,使用TCP协议,保证数据传输的正确性和顺序性。 在工业控制系统中,采用流式Socket编程可以实现Windows与Linux...
在VB6.0中,这可以通过创建一个Socket对象,设置其属性(如IP地址和端口号),然后调用Connect方法来实现。 2. **数据传输**:连接建立后,双方可以开始数据交换。VB6.0中的Socket对象提供了SendData和ReceiveData...
- 即时通讯:如聊天应用,客户端通过Socket保持与服务器的连接,实现实时的消息收发。 - 网页浏览:浏览器作为HTTP/HTTPS客户端,通过Socket与服务器交互,请求并接收网页内容。 理解并熟练掌握Socket客户端编程...
Thrift是一种开源的跨语言服务开发框架,由Facebook于2007年设计并发布,...通过学习和实践"Thrift通讯的例子",我们可以深入理解Thrift的工作原理,并掌握如何在实际项目中应用Thrift来构建高效、可扩展的微服务架构。
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
根据提供的文件信息,文档...涉及到的关键词包括Java、网络编程、C/S架构、Socket通信、多线程编程、即时通讯工具、服务器与客户端的设计等。对于熟悉Java网络编程的开发者来说,这些知识点是构建网络应用系统的基础。
基于 Flash,AdobeFlash 通过自己的 Socket 实现完成数据交换,再利用 Flash 暴露出相应的接口为 JavaScript 调用,从而达到实时传输目的。此方式比轮询要高效,且因为 Flash 安装率高,应用场景比较广泛,但在移动...
在工业自动化领域,利用Java来开发热处理炉温群控系统,可以实现传统工业控制语言(如C、C++、Delphi、VB等)无法提供的网络功能,且Java对硬件控制也有很好的支持。 系统需求分析是开发分布式系统的首要步骤。在此...
Socket 提供了一种低级别的网络通信机制,允许 Flex 客户端与使用各种编程语言(如 C++, VB, C#, Java)开发的服务器端进行双向通信。 在 Flex 中,ActionScript 3.0 提供了 XMLSocket 类来实现 Socket 连接。...
VB可以通过串行通信、TCP/IP协议或其他接口与这些设备或系统进行交互,获取实时数据。 通讯部分可能涉及到多种协议,如RS-232,Ethernet,Wi-Fi,蓝牙等,用于设备间的数据传输。VB有内置的SerialPort类可以处理...
PHP在线客服源码可能使用了如PDO或mysqli等扩展进行数据库操作,以及socket通信技术实现即时通讯。通过调整PHP源码,你可以将自己的客服系统无缝接入到PHP网站中。 此在线客服源码集成了QQ、MSN等常见的即时通讯...