服务器端的socket通过java编程实现,因为服务器里只有java环境。就是如何让客户端和单片机之间通过服务器通信,客户端和单片机必须需要java来开发吗?服务器需要为每个设备都定义端口吗?如果设置多端口怎么进行转发客户端的信息到单片机里呢?求大神解答
通信协议和编程语言没有任何关系,服务器用java,客户端可以用C#,单片机可以用C,没有任何语言类型限制。服务器当然只需要一个端口,所有客户端都连接这个端口就行,就像网页服务器,都是访问80端口,不可能我访问80,你访问81.你的客户端和单片机都是通过网络独立连接到服务器吗?如果是,可以考虑用MQTT这种比较成熟的框架。
单片机没有用JAVA开发的,客户端和单片机之前的服务通信有很多种,大体分有线和无线。通信只要数据的协议一至就可以。比如发送0xAA........crc
下面是我自己开发的,安卓手机和单片机通信,用的是OTG(串口模式)
手机APP上的程序
//++++++++++++++++++++++++++串口接收函数+++++++++++++++++++++++++++++++++++++++
class readThread extends Thread {
public void run() {
byte[] buffer = new byte[20];
while (true) {
//Message msg = Message.obtain();
if (!isOpen) {
break;
}
int length = MyApp.driver.ReadData(buffer,20);
if (length > 0) {
1 客户端和单片机必须需要java来开发吗? 不是的,编程语言都是为实现特定功能服务的,实现同一种功能只要语言支持就可以使用任意一种语言,只是语法不同而已。
2 服务器需要为每个设备都定义端口吗?不需要。开一个端口即可,网络通信如TCP方式都是一对多通信,而非点对点通信,但是要考虑可连接设备数量。
3 如果设置多端口怎么进行转发客户端的信息到单片机里呢? 编写程序使用端口通信进行数据转发即可。
我做过相关的设计与实现,比较熟悉。有问题欢迎私信交流。