В обоих случаях информация в основном бессмысленна, но указывает более или менее на одно и то же.
Ваша первая строка - это прослушивающий сокет TCP. Столбец локального адреса указывает адрес и порт, на котором он принимает соединения, а столбец удаленного адреса ничего не значит, потому что у прослушивающего сокета еще нет удаленного конца соединения. Подключенный сокет TCP покажет адрес другого конца соединения в этой колонке, но для сокеты он решает отобразить все-нулевой адрес и порт.
Ваша вторая строка - это сокет UDP. UDP - это протокол без установления соединения, который означает, что он отправляет и принимает пакеты без какого-либо представления о том, кто к кому подключен, является ли пакет частью существующего диалога, или же данные только что поступили неожиданно. Столбец локального адреса имеет то же значение, что и для TCP, а столбец удаленного адреса не имеет смысла, поскольку сокет UDP может иметь один одноранговый узел, множество одноранговых узлов или не иметь одноранговых узлов в любой момент. (На самом деле у POSIX есть понятие «подключенный UDP-сокет», но это становится немного далеким).
Теперь вопрос: почему они отображаются по-разному? Кажется, это не что иное, как причудливый код Windows netstat. Netstat Linux (net-tools) отображает 0.0.0.0:*
для удаленного конца как сокеты прослушивания TCP, так и UDP-сокеты (для IPv4; он отображает :::*
для IPv6), что отличается от любого примера в Windows, но, по крайней мере, является совместимым в одной и той же программе. Возможно, Windows собирается провести семантическое различие между «быть заполненным позже» в случае TCP и «открытым для чего-либо» в случае UDP, но с той же вероятностью два бита кода были написаны двумя разными людьми без Особая забота о последовательности.
*:*
что IPv6, а0.0.0.0:0
IPv4.