So is this server.86 (.net code) listening on 0.0.0.0:14152?
If you have provided the complete output from that command, then no. Twice over if being overly technical.
First, in a technical sense, UDP doesn't have a "listen" system call, so UDP will never listen, it will only receive. However you are likely asking in a more general sense, so...
Second, two pieces of information in the output you provide show that this is an IPv6 socket. The
udp6 that starts the line signifies this is IPv6 UDP socket as opposed to an IPv4 UDP socket.
Is UDP different between IPv4 and IPv6? No. So why the difference? The socket is tied to both L3 and L4 addressing; this simply helps the user to more easily distinguish IPv4 and IPv6 sockets when viewing the output (or using sort, grep, etc).
Then you have
:::14152 which clearly shows an IPv6 address. How so? Well, with both IPv4 and IPv6 the trailing
:<port> indicates the port portion of the socket and removing this section of the socket leaves the IP address. In this case you get
:: which is the "undefined" IPv6 address of all zeroes.
If you aren't familiar with IPv6 addressing, there are several rules that are allowed to make them more humanly readable when possible. The one in play here is called "Zero Compression" and allows the use of "::" to represent "one or more groups of 16 bits of zeros" (RFC 5952 - although section 4.2.2 further specifies it should only apply to more than one group). So an address of just
:: as indicated in the output is the address of all zeroes.
on ipv6 port type udp?
If I have a client application which is trying to connect to this port would it work with ipv4? or it has to be ipv6?
Again, if the output you gave is complete, there is no socket for 0.0.0.0:14152. Therefore nothing set to receive IPv4 UDP on port 14152. So no, IPv4 should not work. The only way it might work if there was some sort of 6-to-4 translation (i.e. NAT-PT/NAT64) in play somewhere converting the IPv4 traffic to IPv6 traffic.