Сильно упрощенный код:
TcpListener listener = new TcpListener(IPAddress.Any, 30000);
listener.Start();
TcpClient client = listener.AcceptTcpClient();
Console.WriteLine(client.Client.RemoteEndPoint);
listener.Stop();
Console.ReadLine();
Стабильно возвращает 0.0.0.0:0, с AcceptSocket ситуация такая же, при этом байты бегут, все остальное работает.
Очень примерно эквивалентный код на Python отрабатывает нормально:
import SocketServer
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
print self.client_address[0]
if __name__ == "__main__":
HOST, PORT = "0.0.0.0", 30000
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()