files/en-us/web/api/rtcicecandidate/port/index.md
{{APIRef("WebRTC")}}
The {{domxref("RTCIceCandidate")}} interface's read-only port property contains the port
number on the device at the address given by {{domxref("RTCIceCandidate.address")}} at which the candidate's peer can be reached.
The port field's value is set from the candidateInfo options object passed to the {{domxref("RTCIceCandidate.RTCIceCandidate", "RTCIceCandidate()")}} constructor.
You can't specify the value of port directly in the options object, but its value is automatically extracted from the object's candidate a-line, if it's formatted properly.
A 16-bit number indicating the port number on the device at the address indicated by {{domxref("RTCIceCandidate/address", "address")}} at which the candidate's peer can be reached.
port is initialized to null if it is not specified in the
candidate, or if the candidate string can't be parsed properly.
[!NOTE] If
portisnull, passing the candidate to {{domxref("RTCPeerConnection.addIceCandidate", "addIceCandidate()")}} will fail, throwing anOperationErrorexception. This applies only if the candidate implementsport.
Consider this {{Glossary("SDP")}} attribute line (a-line) which describes an ICE candidate:
a=candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host
The port number is found in the sixth field, which is "44323". In this case, the value of port will be 44323.
This code snippet fetches the IP address and port number of the candidate, storing them into an object for future use.
const candidateLoc = {
address: candidate.ip,
port: candidate.port,
};
{{Specifications}}
{{Compat}}