Case for bacnet4j run on Linux
-
Hi, Dear All,
I use bacnet4j to develop a program, it can run normally on Windows, but can not run normally on virtual Linux(Ubuntu 16.04 and CentOS7).
Using Eclipse debug this program, find that the IpNetwork's socket has sent the broadcast msg i.e. who is router. but the socket never receive the DatagramPacket and block on it. ( #IpNetwork.java line 328).
Why this? -
I'm not a bacnet expert, but going on simple laws of network rules, the port is open for incoming requests, even if it is on a local port? It could be blocked is what I'm saying.
Secondly, ensure the port is open and running using
netstat -l
-
Thank MattFox,
The port 47808 is open and run. -
Ok, my next advice would be checking if that error corresponds with the version of java running on your system. Compare with windows.
That's all I can think of.
Best of luck. I trust one of the infinite chaps here will be far more helpful.Fox
-
I would look at the bind address you are using as I believe broadcast messages may behave differently in Windows vs Linux. For example
0.0.0.0
Vs your local ip of:
192.168.1.2
-
Thanks terrypacher.
Yes, may pc address is 192.168.254.177. Use the 0.0.0.0 for LocalBindAddress can run normally.
But why can not use local address to bind for linux, I will think it and try to find the answer. -
Hi Nuc_sun,
have you find the answer?
I think the topic title may make people confused. You can run BACnet4J on Linux physical machine, it runs OK! The problem you encountered is BACnet4J run on Linux in virtual machine. The network settings of the virtual machine is not suitable for BACnet4J, I think!