<socket_connection_string> | ::= "socket://"<inbound> | "socket://"<outbound> |
<inbound> | ::= empty string | ":" | ":"<portspec> |
<outbound> | ::= <host> ":"<portspec> |
<host> | ::= host name | <ipaddr> | <wildcarded_DNS> |
<ipaddr> | ::= IPv4address | '[' IPv6address ']' |
<wildcarded_DNS> | ::= "*" *("."<domainlabel>) ; ; "*" followed by zero or more internet domain labels, separated by "." |
<domainlabel> | ::= internet domain label |
<portspec> | ::= <portnumber> | <portrange> | "*" |
<portnumber> | ::= numeric port number |
<portrange> | ::= <portnumber>"-" | "-"<portnumber> | <portnumber>"-"<portnumber> |
Note that, per RFC 3986, protocol schemes are case-insensitive. The above BNF reflects the normalized form.